Christopher Kohlhoff
e8e370c9ca
Fix completion signatures used for ssl::stream's async_handshake and async_shutdown.
2019-02-18 23:07:24 -10:00
Christopher Kohlhoff
0568d3bf0b
New async_result form with initiate() static member function.
...
The `async_result` template now supports a new form:
template <typename CompletionToken, typename Signature>
struct async_result
{
typedef /* ... */ return_type;
template <typename Initiation,
typename RawCompletionToken,
typename... Args>
static return_type initiate(
Initiation&& initiation,
RawCompletionToken&& token,
Args&&... args);
};
The `initiate()` function must:
* Transform the token into a completion handler object `handler`.
* Cause the invocation of the function object `initiation` as if
by calling:
std::forward<Initiation>(initiation)(
std::move(handler),
std::forward<Args>(args)...);
The invocation of `initiation` may be deferred (e.g. lazily evaluated),
in which case `initiation` and `args` must be decay-copied and moved
as required.
A helper function template `async_initiate` has also been added as a
wrapper for the invocation of `async_result<>::initiate`. For backward
compatibility, this function supports both the old and new async_result
forms.
2019-02-17 20:00:19 -10:00
Christopher Kohlhoff
b572bfbc21
Remove deprecated handler_type and single-argument async_result.
2019-02-17 20:00:05 -10:00
Christopher Kohlhoff
ae04c26689
Update copyright notices.
2019-02-17 19:59:39 -10:00
Christopher Kohlhoff
59066d80b2
Add custom I/O executor support to I/O objects.
...
All I/O objects now have an additional Executor template parameter. This
template parameter defaults to the asio::executor type (the polymorphic
executor wrapper) but can be used to specify a user-defined executor
type.
I/O objects' constructors and functions that previously took an
asio::io_context& now accept either an Executor or a reference to a
concrete ExecutionContext (such as asio::io_context or
asio::thread_pool).
One potential point of breakage in existing user code is when reusing an
I/O object's io_context for constructing another I/O object, as in:
asio::steady_timer my_timer(my_socket.get_executor().context());
To fix this, either construct the second I/O object using the first I/O
object's executor:
asio::steady_timer my_timer(my_socket.get_executor());
or otherwise explicitly pass the io_context:
asio::steady_timer my_timer(my_io_context);
2019-02-17 19:59:29 -10:00
Christopher Kohlhoff
a72fbb0b86
Remove deprecated get_io_context and get_io_service functions.
2019-02-17 19:59:20 -10:00
Christopher Kohlhoff
0b2db4b84e
Remove deprecated services support.
2019-02-17 19:59:01 -10:00
Christopher Kohlhoff
689a98cf84
Use separate recycled memory slot for polymorphic executor.
2019-02-17 19:58:53 -10:00
Christopher Kohlhoff
4b44dd8b59
Fix long lines.
2018-12-05 13:40:03 +11:00
Christopher Kohlhoff
2504d9ab25
Make distinction between overloads clearer.
2018-12-05 13:28:34 +11:00
Christopher Kohlhoff
486843019a
Indicate replacements for deprecated overloads.
2018-12-05 13:24:35 +11:00
Christopher Kohlhoff
c4f23d5fd5
Fix brief description of buffer() overload for non-const std::string.
2018-12-05 13:23:39 +11:00
Christopher Kohlhoff
c3c769f41d
Version bump.
2018-11-07 08:58:44 +11:00
Christopher Kohlhoff
1b6cd9e80c
Add new header file required by previous commit.
2018-11-06 00:01:16 +11:00
Christopher Kohlhoff
84b95e1d8d
Fix detection of std::future with libstdc++.
2018-11-05 23:12:24 +11:00
Christopher Kohlhoff
2e5ecdc897
Fix compile error in regex overload of read_until.
2018-11-05 23:11:48 +11:00
Christopher Kohlhoff
b9add379a7
Clear the heap index for removed timers.
...
Fixes timer heap corruption that can occur after move assignment of
a cancelled timer.
2018-11-05 23:11:16 +11:00
Christopher Kohlhoff
43874d5497
Fix detection of std::experimental::string_view and std::string_view with newer clang/libc++.
2018-11-05 23:10:45 +11:00
Christopher Kohlhoff
c6875a6fb3
Add compile-time test for TLSv1 presence.
2018-11-05 23:10:15 +11:00
Christopher Kohlhoff
f5ea76146f
Fix macro used to test for TLS v1.2 support.
2018-11-05 23:09:46 +11:00
Christopher Kohlhoff
8b716c95b3
Fix typo in ssl::stream::async_write_some documentation.
2018-11-05 23:08:46 +11:00
Christopher Kohlhoff
0e02f7c51e
Fix incorrect reference to 'io_context' in thread_pool documentation.
2018-11-05 23:08:01 +11:00
Christopher Kohlhoff
4d3833013a
Fix MSVC version number for availability of std::invoke_result.
2018-11-05 23:07:28 +11:00
Christopher Kohlhoff
569cba5d47
Test language version using _MSVC_LANG rather than _HAS_CXX17.
2018-11-05 23:07:02 +11:00
Christopher Kohlhoff
5603b1f990
Update buffer sequence traits to test new requirements, if decltype is available.
2018-11-05 23:06:21 +11:00
Christopher Kohlhoff
cf0dab4026
Define buffer sequence traits after buffer_sequence_begin/end has been defined.
2018-11-05 23:05:40 +11:00
Christopher Kohlhoff
a9f264d76e
Fix MSVC issue when building with exceptions disabled.
2018-11-05 23:04:39 +11:00
Christopher Kohlhoff
be95255430
Add options for TLS v1.3.
2018-11-05 23:03:56 +11:00
Christopher Kohlhoff
8cceba99e6
Prevent global objects from being created once per thread on Windows.
2018-11-05 23:00:35 +11:00
Christopher Kohlhoff
ad8cc21d59
Fix crash when using size(), max_size() or empty() on default-constructed resolver results.
2018-11-05 22:58:47 +11:00
Christopher Kohlhoff
d9a0dec854
Move the return value in basic_resolver_results::begin() to avoid copying.
...
This is reported as a warning by recent Clang.
2018-11-05 22:58:05 +11:00
Christopher Kohlhoff
e382407610
Don't use BOOST_VERSION macro in standalone mode.
2018-11-05 22:57:46 +11:00
Christopher Kohlhoff
f14f1f044c
ASIO_HAS_DECL_TYPE should be ASIO_HAS_DECLTYPE in is_buffer_sequence.hpp.
2018-11-05 22:56:17 +11:00
Christopher Kohlhoff
1e55098569
Enable move support for the Intel Compiler.
2018-11-05 22:50:39 +11:00
Christopher Kohlhoff
38cb197197
Do not double define has_string_view with clang-cl
...
Clang-cl identifies both as clang and as MSVC.
This resulted in defining BOOST_ASIO_HAS_STD_STRING_VIEW twice.
2018-11-05 22:49:53 +11:00
Christopher Kohlhoff
39346ddc3d
Fix handler tracking operation name for io_context::executor_type::dispatch.
2018-11-05 22:48:31 +11:00
Christopher Kohlhoff
dd3a28c9fd
Fix buffer overflow when parsing an address string with a 64-bit scope id.
2018-11-05 22:47:35 +11:00
Christopher Kohlhoff
50b66f0fb3
Check for gthreads before enabling std::future with g++.
2018-04-01 21:37:04 +10:00
Christopher Kohlhoff
b61b555157
Need namespace std for sprintf.
2018-04-01 15:49:46 +10:00
Christopher Kohlhoff
158950ed64
Fix storage of decayed function and handler in spawn()-ed coroutine.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
e125aa7538
Fixed compilation on Android NDK15+.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
da95f47d6b
Fix basic_yield_context support for completion signatures with reference parameters.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
b10b5f531b
Explicitly ignore result of iterator dereference.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
0ffe337bda
Distinguish legacy completion handlers (which must be CopyConstructible).
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
ec5c24e3cd
Decay the DynamicBuffer type used in enable_if tests.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
b5b17a67f0
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.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
69a6480fc0
Use std::invoke_result with recent MSVC.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
33d4704420
Make add_certificate_authority process multiple certificates in a bundle.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
bbc5abf228
Don't call SSL_COMP_free_compression_methods if SSL_OP_NO_COMPRESSION is defined.
2018-04-01 15:28:38 +10:00
Christopher Kohlhoff
c112385412
Fix typo in detail::consuming_buffers specialisation.
2018-04-01 15:28:38 +10:00