...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Write a header to a stream asynchronously using a serializer.
Defined in header <boost/beast/http/write.hpp>
template< class AsyncWriteStream, bool isRequest, class Body, class Fields, class WriteHandler = net::default_completion_token_t< executor_type<AsyncWriteStream>>> DEDUCED async_write_header( AsyncWriteStream& stream, serializer< isRequest, Body, Fields >& sr, WriteHandler&& handler = net::default_completion_token_t< executor_type< AsyncWriteStream >>{});
This function is used to write a header to a stream asynchronously using a caller-provided HTTP/1 serializer. The function call always returns immediately. The asynchronous operation will continue until one of the following conditions is true:
serializer::is_header_done
returns true
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 writes until this operation completes.
Name |
Description |
---|---|
|
The stream to which the data is to be written. The type must support the AsyncWriteStream concept. |
|
The serializer to use. The object must remain valid at least until the handler is called; ownership is not transferred. |
|
The completion handler to invoke when the operation completes. The implementation takes ownership of the handler by performing a decay-copy. The equivalent function signature of the handler must be: void handler( error_code const& error, // result of operation std::size_t bytes_transferred // the number of bytes written to the stream );
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 |
The implementation will call serializer::split
with the value true
on the serializer passed in.