...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Write all output from a BuffersGenerator asynchronously to a stream.
Defined in header <boost/beast/core/buffers_generator.hpp>
template< class AsyncWriteStream, class BuffersGenerator, class CompletionToken = net::default_completion_token_t<executor_type<AsyncWriteStream>>> DEDUCED async_write( AsyncWriteStream& stream, BuffersGenerator generator, CompletionToken&& token = net::default_completion_token_t< executor_type< AsyncWriteStream > >{});
This function is used to write all of the buffers generated by a caller-provided
BuffersGenerator
to a stream.
The function call always returns immediately. The asynchronous operation
will continue until one of the following conditions is true:
is_done
returns false
.
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 SyncWriteStream concept. |
|
The generator to use. |
|
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 |
BuffersGenerator