forked from boostorg/beast
Async init-fns use the executor's default token
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
Version 275:
|
||||||
|
|
||||||
|
* Async init-fns use the executor's default token
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
Version 274:
|
Version 274:
|
||||||
|
|
||||||
* Fix leftovers in basic_parser corner case
|
* Fix leftovers in basic_parser corner case
|
||||||
|
@@ -224,11 +224,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class MutableBufferSequence,
|
class MutableBufferSequence,
|
||||||
class ReadHandler>
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
MutableBufferSequence const& buffers,
|
MutableBufferSequence const& buffers,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
|
|
||||||
/** Write some data to the stream.
|
/** Write some data to the stream.
|
||||||
|
|
||||||
@@ -303,11 +306,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class ConstBufferSequence,
|
class ConstBufferSequence,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(
|
async_write_some(
|
||||||
ConstBufferSequence const& buffers,
|
ConstBufferSequence const& buffers,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
};
|
};
|
||||||
|
|
||||||
} // http
|
} // http
|
||||||
|
@@ -475,9 +475,12 @@ public:
|
|||||||
to ensure that the requested amount of data is read before the asynchronous
|
to ensure that the requested amount of data is read before the asynchronous
|
||||||
operation completes.
|
operation completes.
|
||||||
*/
|
*/
|
||||||
template<class MutableBufferSequence, class ReadHandler>
|
template<
|
||||||
|
class MutableBufferSequence,
|
||||||
|
class ReadHandler>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(MutableBufferSequence const& buffers,
|
async_read_some(
|
||||||
|
MutableBufferSequence const& buffers,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler);
|
||||||
|
|
||||||
/** Write some data to the stream.
|
/** Write some data to the stream.
|
||||||
@@ -550,9 +553,12 @@ public:
|
|||||||
the peer. Consider using the function `net::async_write` if you need
|
the peer. Consider using the function `net::async_write` if you need
|
||||||
to ensure that all data is written before the asynchronous operation completes.
|
to ensure that all data is written before the asynchronous operation completes.
|
||||||
*/
|
*/
|
||||||
template<class ConstBufferSequence, class WriteHandler>
|
template<
|
||||||
|
class ConstBufferSequence,
|
||||||
|
class WriteHandler>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(ConstBufferSequence const& buffers,
|
async_write_some(
|
||||||
|
ConstBufferSequence const& buffers,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler);
|
||||||
|
|
||||||
#if ! BOOST_BEAST_DOXYGEN
|
#if ! BOOST_BEAST_DOXYGEN
|
||||||
|
@@ -911,11 +911,16 @@ public:
|
|||||||
|
|
||||||
@see async_connect
|
@see async_connect
|
||||||
*/
|
*/
|
||||||
template<class ConnectHandler>
|
template<
|
||||||
|
class ConnectHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(ConnectHandler)
|
BOOST_BEAST_ASYNC_RESULT1(ConnectHandler)
|
||||||
async_connect(
|
async_connect(
|
||||||
endpoint_type const& ep,
|
endpoint_type const& ep,
|
||||||
ConnectHandler&& handler);
|
ConnectHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
||||||
|
|
||||||
@@ -960,7 +965,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class EndpointSequence,
|
class EndpointSequence,
|
||||||
class RangeConnectHandler
|
class RangeConnectHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
#if ! BOOST_BEAST_DOXYGEN
|
#if ! BOOST_BEAST_DOXYGEN
|
||||||
,class = typename std::enable_if<
|
,class = typename std::enable_if<
|
||||||
net::is_endpoint_sequence<
|
net::is_endpoint_sequence<
|
||||||
@@ -970,7 +976,8 @@ public:
|
|||||||
BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void (error_code, typename Protocol::endpoint))
|
BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void (error_code, typename Protocol::endpoint))
|
||||||
async_connect(
|
async_connect(
|
||||||
EndpointSequence const& endpoints,
|
EndpointSequence const& endpoints,
|
||||||
RangeConnectHandler&& handler);
|
RangeConnectHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
|
|
||||||
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
||||||
|
|
||||||
@@ -1047,7 +1054,8 @@ public:
|
|||||||
template<
|
template<
|
||||||
class EndpointSequence,
|
class EndpointSequence,
|
||||||
class ConnectCondition,
|
class ConnectCondition,
|
||||||
class RangeConnectHandler
|
class RangeConnectHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
#if ! BOOST_BEAST_DOXYGEN
|
#if ! BOOST_BEAST_DOXYGEN
|
||||||
,class = typename std::enable_if<
|
,class = typename std::enable_if<
|
||||||
net::is_endpoint_sequence<
|
net::is_endpoint_sequence<
|
||||||
@@ -1058,7 +1066,9 @@ public:
|
|||||||
async_connect(
|
async_connect(
|
||||||
EndpointSequence const& endpoints,
|
EndpointSequence const& endpoints,
|
||||||
ConnectCondition connect_condition,
|
ConnectCondition connect_condition,
|
||||||
RangeConnectHandler&& handler);
|
RangeConnectHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
||||||
|
|
||||||
@@ -1104,11 +1114,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class Iterator,
|
class Iterator,
|
||||||
class IteratorConnectHandler>
|
class IteratorConnectHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator))
|
BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator))
|
||||||
async_connect(
|
async_connect(
|
||||||
Iterator begin, Iterator end,
|
Iterator begin, Iterator end,
|
||||||
IteratorConnectHandler&& handler);
|
IteratorConnectHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
|
|
||||||
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
/** Establishes a connection by trying each endpoint in a sequence asynchronously.
|
||||||
|
|
||||||
@@ -1159,12 +1171,14 @@ public:
|
|||||||
template<
|
template<
|
||||||
class Iterator,
|
class Iterator,
|
||||||
class ConnectCondition,
|
class ConnectCondition,
|
||||||
class IteratorConnectHandler>
|
class IteratorConnectHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator))
|
BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator))
|
||||||
async_connect(
|
async_connect(
|
||||||
Iterator begin, Iterator end,
|
Iterator begin, Iterator end,
|
||||||
ConnectCondition connect_condition,
|
ConnectCondition connect_condition,
|
||||||
IteratorConnectHandler&& handler);
|
IteratorConnectHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -1277,11 +1291,17 @@ public:
|
|||||||
to ensure that the requested amount of data is read before the asynchronous
|
to ensure that the requested amount of data is read before the asynchronous
|
||||||
operation completes.
|
operation completes.
|
||||||
*/
|
*/
|
||||||
template<class MutableBufferSequence, class ReadHandler>
|
template<
|
||||||
|
class MutableBufferSequence,
|
||||||
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
MutableBufferSequence const& buffers,
|
MutableBufferSequence const& buffers,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{}
|
||||||
|
);
|
||||||
|
|
||||||
/** Write some data.
|
/** Write some data.
|
||||||
|
|
||||||
@@ -1394,11 +1414,16 @@ public:
|
|||||||
to ensure that the requested amount of data is sent before the asynchronous
|
to ensure that the requested amount of data is sent before the asynchronous
|
||||||
operation completes.
|
operation completes.
|
||||||
*/
|
*/
|
||||||
template<class ConstBufferSequence, class WriteHandler>
|
template<
|
||||||
|
class ConstBufferSequence,
|
||||||
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<Executor>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(
|
async_write_some(
|
||||||
ConstBufferSequence const& buffers,
|
ConstBufferSequence const& buffers,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<Executor>{});
|
||||||
};
|
};
|
||||||
|
|
||||||
} // beast
|
} // beast
|
||||||
|
@@ -261,10 +261,15 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class MutableBufferSequence, class ReadHandler>
|
template<
|
||||||
|
class MutableBufferSequence,
|
||||||
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(MutableBufferSequence const& buffers,
|
async_read_some(
|
||||||
ReadHandler&& handler);
|
MutableBufferSequence const& buffers,
|
||||||
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
|
|
||||||
/** Write some data to the stream.
|
/** Write some data to the stream.
|
||||||
|
|
||||||
@@ -335,10 +340,15 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class ConstBufferSequence, class WriteHandler>
|
template<
|
||||||
|
class ConstBufferSequence,
|
||||||
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(ConstBufferSequence const& buffers,
|
async_write_some(
|
||||||
WriteHandler&& handler);
|
ConstBufferSequence const& buffers,
|
||||||
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
};
|
};
|
||||||
|
|
||||||
} // beast
|
} // beast
|
||||||
|
@@ -316,7 +316,9 @@ detect_ssl(
|
|||||||
template<
|
template<
|
||||||
class AsyncReadStream,
|
class AsyncReadStream,
|
||||||
class DynamicBuffer,
|
class DynamicBuffer,
|
||||||
class CompletionToken>
|
class CompletionToken =
|
||||||
|
net::default_completion_token_t<beast::executor_type<AsyncReadStream>>
|
||||||
|
>
|
||||||
#if BOOST_BEAST_DOXYGEN
|
#if BOOST_BEAST_DOXYGEN
|
||||||
BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, void(error_code, bool))
|
BOOST_ASIO_INITFN_RESULT_TYPE(CompletionToken, void(error_code, bool))
|
||||||
#else
|
#else
|
||||||
@@ -325,7 +327,8 @@ auto
|
|||||||
async_detect_ssl(
|
async_detect_ssl(
|
||||||
AsyncReadStream& stream,
|
AsyncReadStream& stream,
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
CompletionToken&& token) ->
|
CompletionToken&& token = net::default_completion_token_t<
|
||||||
|
beast::executor_type<AsyncReadStream>>{}) ->
|
||||||
typename net::async_result<
|
typename net::async_result<
|
||||||
typename std::decay<CompletionToken>::type, /*< `async_result` customizes the return value based on the completion token >*/
|
typename std::decay<CompletionToken>::type, /*< `async_result` customizes the return value based on the completion token >*/
|
||||||
void(error_code, bool)>::return_type; /*< This is the signature for the completion handler >*/
|
void(error_code, bool)>::return_type; /*< This is the signature for the completion handler >*/
|
||||||
|
@@ -253,11 +253,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class MutableBufferSequence,
|
class MutableBufferSequence,
|
||||||
class ReadHandler>
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
MutableBufferSequence const& buffers,
|
MutableBufferSequence const& buffers,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
|
|
||||||
/** Write some data to the stream.
|
/** Write some data to the stream.
|
||||||
|
|
||||||
@@ -332,11 +334,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class ConstBufferSequence,
|
class ConstBufferSequence,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(
|
async_write_some(
|
||||||
ConstBufferSequence const& buffers,
|
ConstBufferSequence const& buffers,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{});
|
||||||
};
|
};
|
||||||
|
|
||||||
} // beast
|
} // beast
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include <boost/beast/core/detail/config.hpp>
|
#include <boost/beast/core/detail/config.hpp>
|
||||||
#include <boost/beast/core/error.hpp>
|
#include <boost/beast/core/error.hpp>
|
||||||
|
#include <boost/beast/core/stream_traits.hpp>
|
||||||
#include <boost/beast/http/basic_parser.hpp>
|
#include <boost/beast/http/basic_parser.hpp>
|
||||||
#include <boost/beast/http/message.hpp>
|
#include <boost/beast/http/message.hpp>
|
||||||
#include <boost/asio/async_result.hpp>
|
#include <boost/asio/async_result.hpp>
|
||||||
@@ -204,13 +205,17 @@ template<
|
|||||||
class AsyncReadStream,
|
class AsyncReadStream,
|
||||||
class DynamicBuffer,
|
class DynamicBuffer,
|
||||||
bool isRequest,
|
bool isRequest,
|
||||||
class ReadHandler>
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
AsyncReadStream& stream,
|
AsyncReadStream& stream,
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
basic_parser<isRequest>& parser,
|
basic_parser<isRequest>& parser,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -397,13 +402,17 @@ template<
|
|||||||
class AsyncReadStream,
|
class AsyncReadStream,
|
||||||
class DynamicBuffer,
|
class DynamicBuffer,
|
||||||
bool isRequest,
|
bool isRequest,
|
||||||
class ReadHandler>
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_header(
|
async_read_header(
|
||||||
AsyncReadStream& stream,
|
AsyncReadStream& stream,
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
basic_parser<isRequest>& parser,
|
basic_parser<isRequest>& parser,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -590,13 +599,17 @@ template<
|
|||||||
class AsyncReadStream,
|
class AsyncReadStream,
|
||||||
class DynamicBuffer,
|
class DynamicBuffer,
|
||||||
bool isRequest,
|
bool isRequest,
|
||||||
class ReadHandler>
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read(
|
async_read(
|
||||||
AsyncReadStream& stream,
|
AsyncReadStream& stream,
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
basic_parser<isRequest>& parser,
|
basic_parser<isRequest>& parser,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -792,13 +805,17 @@ template<
|
|||||||
class AsyncReadStream,
|
class AsyncReadStream,
|
||||||
class DynamicBuffer,
|
class DynamicBuffer,
|
||||||
bool isRequest, class Body, class Allocator,
|
bool isRequest, class Body, class Allocator,
|
||||||
class ReadHandler>
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read(
|
async_read(
|
||||||
AsyncReadStream& stream,
|
AsyncReadStream& stream,
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
message<isRequest, Body, basic_fields<Allocator>>& msg,
|
message<isRequest, Body, basic_fields<Allocator>>& msg,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncReadStream>>{});
|
||||||
|
|
||||||
} // http
|
} // http
|
||||||
} // beast
|
} // beast
|
||||||
|
@@ -11,15 +11,12 @@
|
|||||||
#define BOOST_BEAST_HTTP_WRITE_HPP
|
#define BOOST_BEAST_HTTP_WRITE_HPP
|
||||||
|
|
||||||
#include <boost/beast/core/detail/config.hpp>
|
#include <boost/beast/core/detail/config.hpp>
|
||||||
#include <boost/beast/core/buffers_cat.hpp>
|
|
||||||
#include <boost/beast/core/buffers_suffix.hpp>
|
|
||||||
#include <boost/beast/core/multi_buffer.hpp>
|
|
||||||
#include <boost/beast/http/message.hpp>
|
#include <boost/beast/http/message.hpp>
|
||||||
#include <boost/beast/http/serializer.hpp>
|
#include <boost/beast/http/serializer.hpp>
|
||||||
#include <boost/beast/http/type_traits.hpp>
|
#include <boost/beast/http/type_traits.hpp>
|
||||||
#include <boost/beast/http/detail/chunk_encode.hpp>
|
#include <boost/beast/http/detail/chunk_encode.hpp>
|
||||||
#include <boost/beast/core/error.hpp>
|
#include <boost/beast/core/error.hpp>
|
||||||
#include <boost/beast/core/string.hpp>
|
#include <boost/beast/core/stream_traits.hpp>
|
||||||
#include <boost/asio/async_result.hpp>
|
#include <boost/asio/async_result.hpp>
|
||||||
#include <iosfwd>
|
#include <iosfwd>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
@@ -169,12 +166,16 @@ write_some(
|
|||||||
template<
|
template<
|
||||||
class AsyncWriteStream,
|
class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(
|
async_write_some(
|
||||||
AsyncWriteStream& stream,
|
AsyncWriteStream& stream,
|
||||||
serializer<isRequest, Body, Fields>& sr,
|
serializer<isRequest, Body, Fields>& sr,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -295,12 +296,16 @@ write_header(
|
|||||||
template<
|
template<
|
||||||
class AsyncWriteStream,
|
class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_header(
|
async_write_header(
|
||||||
AsyncWriteStream& stream,
|
AsyncWriteStream& stream,
|
||||||
serializer<isRequest, Body, Fields>& sr,
|
serializer<isRequest, Body, Fields>& sr,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -412,12 +417,16 @@ write(
|
|||||||
template<
|
template<
|
||||||
class AsyncWriteStream,
|
class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write(
|
async_write(
|
||||||
AsyncWriteStream& stream,
|
AsyncWriteStream& stream,
|
||||||
serializer<isRequest, Body, Fields>& sr,
|
serializer<isRequest, Body, Fields>& sr,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -633,7 +642,9 @@ write(
|
|||||||
template<
|
template<
|
||||||
class AsyncWriteStream,
|
class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>>
|
||||||
#if BOOST_BEAST_DOXYGEN
|
#if BOOST_BEAST_DOXYGEN
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
#else
|
#else
|
||||||
@@ -644,7 +655,9 @@ typename std::enable_if<
|
|||||||
async_write(
|
async_write(
|
||||||
AsyncWriteStream& stream,
|
AsyncWriteStream& stream,
|
||||||
message<isRequest, Body, Fields>& msg,
|
message<isRequest, Body, Fields>& msg,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>);
|
||||||
|
|
||||||
/** Write a complete message to a stream asynchronously.
|
/** Write a complete message to a stream asynchronously.
|
||||||
|
|
||||||
@@ -692,7 +705,9 @@ async_write(
|
|||||||
template<
|
template<
|
||||||
class AsyncWriteStream,
|
class AsyncWriteStream,
|
||||||
bool isRequest, class Body, class Fields,
|
bool isRequest, class Body, class Fields,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>>
|
||||||
#if BOOST_BEAST_DOXYGEN
|
#if BOOST_BEAST_DOXYGEN
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
#else
|
#else
|
||||||
@@ -703,7 +718,9 @@ typename std::enable_if<
|
|||||||
async_write(
|
async_write(
|
||||||
AsyncWriteStream& stream,
|
AsyncWriteStream& stream,
|
||||||
message<isRequest, Body, Fields> const& msg,
|
message<isRequest, Body, Fields> const& msg,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type<AsyncWriteStream>>{});
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -875,12 +875,17 @@ public:
|
|||||||
@li <a href="https://tools.ietf.org/html/rfc7230#section-3.1.1">request-target (RFC7230)</a>
|
@li <a href="https://tools.ietf.org/html/rfc7230#section-3.1.1">request-target (RFC7230)</a>
|
||||||
@li <a href="https://tools.ietf.org/html/rfc7230#section-5.3.1">origin-form (RFC7230)</a>
|
@li <a href="https://tools.ietf.org/html/rfc7230#section-5.3.1">origin-form (RFC7230)</a>
|
||||||
*/
|
*/
|
||||||
template<class HandshakeHandler>
|
template<
|
||||||
|
class HandshakeHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler)
|
BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler)
|
||||||
async_handshake(
|
async_handshake(
|
||||||
string_view host,
|
string_view host,
|
||||||
string_view target,
|
string_view target,
|
||||||
HandshakeHandler&& handler);
|
HandshakeHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Perform the WebSocket handshake asynchronously in the client role.
|
/** Perform the WebSocket handshake asynchronously in the client role.
|
||||||
|
|
||||||
@@ -956,13 +961,18 @@ public:
|
|||||||
@li <a href="https://tools.ietf.org/html/rfc7230#section-3.1.1">request-target (RFC7230)</a>
|
@li <a href="https://tools.ietf.org/html/rfc7230#section-3.1.1">request-target (RFC7230)</a>
|
||||||
@li <a href="https://tools.ietf.org/html/rfc7230#section-5.3.1">origin-form (RFC7230)</a>
|
@li <a href="https://tools.ietf.org/html/rfc7230#section-5.3.1">origin-form (RFC7230)</a>
|
||||||
*/
|
*/
|
||||||
template<class HandshakeHandler>
|
template<
|
||||||
|
class HandshakeHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler)
|
BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler)
|
||||||
async_handshake(
|
async_handshake(
|
||||||
response_type& res,
|
response_type& res,
|
||||||
string_view host,
|
string_view host,
|
||||||
string_view target,
|
string_view target,
|
||||||
HandshakeHandler&& handler);
|
HandshakeHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
@@ -1275,9 +1285,15 @@ public:
|
|||||||
@see
|
@see
|
||||||
@li <a href="https://tools.ietf.org/html/rfc6455#section-4.2">Websocket Opening Handshake Server Requirements (RFC6455)</a>
|
@li <a href="https://tools.ietf.org/html/rfc6455#section-4.2">Websocket Opening Handshake Server Requirements (RFC6455)</a>
|
||||||
*/
|
*/
|
||||||
template<class AcceptHandler>
|
template<
|
||||||
|
class AcceptHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
|
BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
|
||||||
async_accept(AcceptHandler&& handler);
|
async_accept(
|
||||||
|
AcceptHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Perform the WebSocket handshake asynchronously in the server role.
|
/** Perform the WebSocket handshake asynchronously in the server role.
|
||||||
|
|
||||||
@@ -1338,7 +1354,9 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class ConstBufferSequence,
|
class ConstBufferSequence,
|
||||||
class AcceptHandler>
|
class AcceptHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
#if BOOST_BEAST_DOXYGEN
|
#if BOOST_BEAST_DOXYGEN
|
||||||
void_or_deduced
|
void_or_deduced
|
||||||
#else
|
#else
|
||||||
@@ -1348,7 +1366,9 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
async_accept(
|
async_accept(
|
||||||
ConstBufferSequence const& buffers,
|
ConstBufferSequence const& buffers,
|
||||||
AcceptHandler&& handler);
|
AcceptHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Perform the WebSocket handshake asynchronously in the server role.
|
/** Perform the WebSocket handshake asynchronously in the server role.
|
||||||
|
|
||||||
@@ -1399,12 +1419,16 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class Body, class Allocator,
|
class Body, class Allocator,
|
||||||
class AcceptHandler>
|
class AcceptHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
|
BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
|
||||||
async_accept(
|
async_accept(
|
||||||
http::request<Body,
|
http::request<Body,
|
||||||
http::basic_fields<Allocator>> const& req,
|
http::basic_fields<Allocator>> const& req,
|
||||||
AcceptHandler&& handler);
|
AcceptHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
@@ -1529,9 +1553,16 @@ public:
|
|||||||
@see
|
@see
|
||||||
@li <a href="https://tools.ietf.org/html/rfc6455#section-7.1.2">Websocket Closing Handshake (RFC6455)</a>
|
@li <a href="https://tools.ietf.org/html/rfc6455#section-7.1.2">Websocket Closing Handshake (RFC6455)</a>
|
||||||
*/
|
*/
|
||||||
template<class CloseHandler>
|
template<
|
||||||
|
class CloseHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(CloseHandler)
|
BOOST_BEAST_ASYNC_RESULT1(CloseHandler)
|
||||||
async_close(close_reason const& cr, CloseHandler&& handler);
|
async_close(
|
||||||
|
close_reason const& cr,
|
||||||
|
CloseHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
@@ -1624,9 +1655,16 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class WriteHandler>
|
template<
|
||||||
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT1(WriteHandler)
|
||||||
async_ping(ping_data const& payload, WriteHandler&& handler);
|
async_ping(
|
||||||
|
ping_data const& payload,
|
||||||
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Send a websocket pong control frame.
|
/** Send a websocket pong control frame.
|
||||||
|
|
||||||
@@ -1725,9 +1763,16 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class WriteHandler>
|
template<
|
||||||
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<executor_type>
|
||||||
|
>
|
||||||
BOOST_BEAST_ASYNC_RESULT1(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT1(WriteHandler)
|
||||||
async_pong(ping_data const& payload, WriteHandler&& handler);
|
async_pong(
|
||||||
|
ping_data const& payload,
|
||||||
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
@@ -1879,11 +1924,17 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class DynamicBuffer, class ReadHandler>
|
template<
|
||||||
|
class DynamicBuffer,
|
||||||
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read(
|
async_read(
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -2052,12 +2103,18 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class DynamicBuffer, class ReadHandler>
|
template<
|
||||||
|
class DynamicBuffer,
|
||||||
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
DynamicBuffer& buffer,
|
DynamicBuffer& buffer,
|
||||||
std::size_t limit,
|
std::size_t limit,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -2221,11 +2278,17 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class MutableBufferSequence, class ReadHandler>
|
template<
|
||||||
|
class MutableBufferSequence,
|
||||||
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
MutableBufferSequence const& buffers,
|
MutableBufferSequence const& buffers,
|
||||||
ReadHandler&& handler);
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
@@ -2340,11 +2403,15 @@ public:
|
|||||||
*/
|
*/
|
||||||
template<
|
template<
|
||||||
class ConstBufferSequence,
|
class ConstBufferSequence,
|
||||||
class WriteHandler>
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write(
|
async_write(
|
||||||
ConstBufferSequence const& buffers,
|
ConstBufferSequence const& buffers,
|
||||||
WriteHandler&& handler);
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
/** Write some message data.
|
/** Write some message data.
|
||||||
|
|
||||||
@@ -2457,10 +2524,18 @@ public:
|
|||||||
this function. Invocation of the handler will be performed in a
|
this function. Invocation of the handler will be performed in a
|
||||||
manner equivalent to using `net::post`.
|
manner equivalent to using `net::post`.
|
||||||
*/
|
*/
|
||||||
template<class ConstBufferSequence, class WriteHandler>
|
template<
|
||||||
|
class ConstBufferSequence,
|
||||||
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(bool fin,
|
async_write_some(
|
||||||
ConstBufferSequence const& buffers, WriteHandler&& handler);
|
bool fin,
|
||||||
|
ConstBufferSequence const& buffers,
|
||||||
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{});
|
||||||
|
|
||||||
//
|
//
|
||||||
// Deprecated
|
// Deprecated
|
||||||
|
@@ -243,11 +243,15 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Read some data from the stream asynchronously
|
/// Read some data from the stream asynchronously
|
||||||
template <class MutableBufferSequence, class ReadHandler>
|
template<
|
||||||
|
class MutableBufferSequence,
|
||||||
|
class ReadHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
|
||||||
async_read_some(
|
async_read_some(
|
||||||
MutableBufferSequence const& buffers,
|
MutableBufferSequence const& buffers,
|
||||||
ReadHandler&& handler)
|
ReadHandler&& handler =
|
||||||
|
net::default_completion_token_t<executor_type>{})
|
||||||
{
|
{
|
||||||
return net::async_initiate<
|
return net::async_initiate<
|
||||||
ReadHandler,
|
ReadHandler,
|
||||||
@@ -259,11 +263,16 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Write some data to the stream asynchronously
|
/// Write some data to the stream asynchronously
|
||||||
template <class ConstBufferSequence, class WriteHandler>
|
template<
|
||||||
|
class ConstBufferSequence,
|
||||||
|
class WriteHandler =
|
||||||
|
net::default_completion_token_t<executor_type>>
|
||||||
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
|
||||||
async_write_some(
|
async_write_some(
|
||||||
ConstBufferSequence const& buffers,
|
ConstBufferSequence const& buffers,
|
||||||
WriteHandler&& handler)
|
WriteHandler&& handler =
|
||||||
|
net::default_completion_token_t<
|
||||||
|
executor_type>{})
|
||||||
{
|
{
|
||||||
return net::async_initiate<
|
return net::async_initiate<
|
||||||
WriteHandler,
|
WriteHandler,
|
||||||
|
Reference in New Issue
Block a user