From 89031d932ccf91b6c946677bc42927d33ef98069 Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Fri, 3 Apr 2020 17:25:52 +0200 Subject: [PATCH] Rename cti::asio_token to cti::use_continuable * support -> external --- .../example-asio/example-asio-integration.cpp | 10 ++++---- .../detail/{support => external}/asio.hpp | 7 +++--- .../{support => external}/asio.hpp | 25 +++++++++---------- .../{support => external}/gtest.hpp | 6 ++--- test/playground/CMakeLists.txt | 1 + 5 files changed, 24 insertions(+), 25 deletions(-) rename include/continuable/detail/{support => external}/asio.hpp (95%) rename include/continuable/{support => external}/asio.hpp (81%) rename include/continuable/{support => external}/gtest.hpp (97%) diff --git a/examples/example-asio/example-asio-integration.cpp b/examples/example-asio/example-asio-integration.cpp index ad2e3aa..02619c3 100644 --- a/examples/example-asio/example-asio-integration.cpp +++ b/examples/example-asio/example-asio-integration.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include // Queries the NIST daytime service and prints the current date and time void daytime_service(); @@ -61,13 +61,13 @@ void daytime_service() { tcp::socket socket(ioc); std::string buf; - resolver.async_resolve("time.nist.gov", "daytime", cti::asio_token) + resolver.async_resolve("time.nist.gov", "daytime", cti::use_continuable) .then([&socket](tcp::resolver::results_type endpoints) { - return asio::async_connect(socket, endpoints, cti::asio_token); + return asio::async_connect(socket, endpoints, cti::use_continuable); }) .then([&socket, &buf] { return asio::async_read_until(socket, asio::dynamic_buffer(buf), '\n', - cti::asio_token); + cti::use_continuable); }) .then([&buf](std::size_t) { puts(buf.data()); }) .fail(&unexpected_error); @@ -81,7 +81,7 @@ void cancelled_async_wait() { t.expires_after(std::chrono::seconds(999)); - t.async_wait(cti::asio_token) + t.async_wait(cti::use_continuable) .then([] { puts("This should never be called"); std::terminate(); diff --git a/include/continuable/detail/support/asio.hpp b/include/continuable/detail/external/asio.hpp similarity index 95% rename from include/continuable/detail/support/asio.hpp rename to include/continuable/detail/external/asio.hpp index 04122d4..0064788 100644 --- a/include/continuable/detail/support/asio.hpp +++ b/include/continuable/detail/external/asio.hpp @@ -132,14 +132,13 @@ struct initiate_make_continuable; template struct initiate_make_continuable { #if defined(CTI_DETAIL_ASIO_HAS_EXPLICIT_RET_TYPE_INTEGRATION) - using erased_return_type = cti::continuable; + using erased_return_type = continuable; #endif template auto operator()(Continuation&& continuation) { - return detail::base::attorney::create_from( - std::forward(continuation), detail::identity{}, - detail::util::ownership{}); + return base::attorney::create_from(std::forward(continuation), + identity{}, util::ownership{}); } }; diff --git a/include/continuable/support/asio.hpp b/include/continuable/external/asio.hpp similarity index 81% rename from include/continuable/support/asio.hpp rename to include/continuable/external/asio.hpp index 387fef3..9536276 100644 --- a/include/continuable/support/asio.hpp +++ b/include/continuable/external/asio.hpp @@ -27,28 +27,26 @@ SOFTWARE. **/ -#ifndef CONTINUABLE_SUPPORT_ASIO_HPP_INCLUDED -#define CONTINUABLE_SUPPORT_ASIO_HPP_INCLUDED +#ifndef CONTINUABLE_EXTERNAL_ASIO_HPP_INCLUDED +#define CONTINUABLE_EXTERNAL_ASIO_HPP_INCLUDED #include -#include +#include #include namespace cti { +/// Type used as an ASIO completion token to specify an asynchronous operation +/// should return a continuable. +struct use_continuable_t {}; -// Type used as an ASIO completion token to specify an asynchronous operation -// should return a continuable. -struct asio_token_t {}; - -// Special value for instance of `asio_token_t`. -constexpr asio_token_t asio_token{}; - +/// Special value for instance of `asio_token_t`. +constexpr use_continuable_t use_continuable{}; } // namespace cti CTI_DETAIL_ASIO_NAMESPACE_BEGIN template -class async_result { +class async_result { public: #if defined(CTI_DETAIL_ASIO_HAS_EXPLICIT_RET_TYPE_INTEGRATION) using return_type = typename cti::detail::asio::initiate_make_continuable< @@ -56,7 +54,8 @@ public: #endif template - static auto initiate(Initiation initiation, cti::asio_token_t, Args... args) { + static auto initiate(Initiation initiation, cti::use_continuable_t, + Args... args) { return cti::detail::asio::initiate_make_continuable{}( [initiation = std::move(initiation), init_args = @@ -80,4 +79,4 @@ CTI_DETAIL_ASIO_NAMESPACE_END #undef CTI_DETAIL_ASIO_NAMESPACE_END #undef CTI_DETAIL_ASIO_HAS_EXPLICIT_RET_TYPE_INTEGRATION -#endif // CONTINUABLE_SUPPORT_ASIO_HPP_INCLUDED +#endif // CONTINUABLE_EXTERNAL_ASIO_HPP_INCLUDED diff --git a/include/continuable/support/gtest.hpp b/include/continuable/external/gtest.hpp similarity index 97% rename from include/continuable/support/gtest.hpp rename to include/continuable/external/gtest.hpp index fb780f8..7a2bc67 100644 --- a/include/continuable/support/gtest.hpp +++ b/include/continuable/external/gtest.hpp @@ -28,8 +28,8 @@ SOFTWARE. **/ -#ifndef CONTINUABLE_SUPPORT_GTEST_HPP_INCLUDED -#define CONTINUABLE_SUPPORT_GTEST_HPP_INCLUDED +#ifndef CONTINUABLE_EXTERNAL_GTEST_HPP_INCLUDED +#define CONTINUABLE_EXTERNAL_GTEST_HPP_INCLUDED #include #include @@ -169,4 +169,4 @@ /// \} -#endif // CONTINUABLE_SUPPORT_GTEST_HPP_INCLUDED +#endif // CONTINUABLE_EXTERNAL_GTEST_HPP_INCLUDED diff --git a/test/playground/CMakeLists.txt b/test/playground/CMakeLists.txt index 0109f99..68c616e 100644 --- a/test/playground/CMakeLists.txt +++ b/test/playground/CMakeLists.txt @@ -15,6 +15,7 @@ group_sources(${CMAKE_CURRENT_LIST_DIR} target_link_libraries(test-playground PRIVATE gtest + asio continuable continuable-features-flags continuable-features-warnings