50 lines
1.0 KiB
Plaintext
50 lines
1.0 KiB
Plaintext
[/
|
|
/ Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
|
/
|
|
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
/]
|
|
|
|
[section:CancellationHandler Cancellation handler requirements]
|
|
|
|
A value `h` of a cancellation handler class should work correctly in the
|
|
expression `h(t)`, where `t` is a value of type
|
|
`boost::asio::cancellation_type`.
|
|
|
|
[heading Examples]
|
|
|
|
A free function as a cancellation handler:
|
|
|
|
void cancellation_handler(
|
|
boost::asio::cancellation_type type)
|
|
{
|
|
...
|
|
}
|
|
|
|
slot.assign(cancellation_handler);
|
|
|
|
A cancellation handler function object:
|
|
|
|
struct cancellation_handler
|
|
{
|
|
...
|
|
void operator()(
|
|
boost::asio::cancellation_type type)
|
|
{
|
|
...
|
|
}
|
|
...
|
|
};
|
|
|
|
cancellation_handler& h = slot.assign(cancellation_handler{ ... });
|
|
|
|
A lambda as a cancellation handler:
|
|
|
|
auto& h = slot.assign(
|
|
[](boost::asio::cancellation_type type)
|
|
{
|
|
...
|
|
});
|
|
|
|
[endsect]
|