mirror of
https://github.com/boostorg/asio.git
synced 2026-01-19 04:02:09 +00:00
93 lines
2.5 KiB
Plaintext
93 lines
2.5 KiB
Plaintext
[/
|
|
/ Copyright (c) 2003-2025 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:CancellationSlot Cancellation slot requirements]
|
|
|
|
A type `X` meets the `CancellationSlot` requirements if it satisfies the
|
|
requirements of `CopyConstructible` (C++Std [copyconstructible]) and
|
|
`Destructible` (C++Std [destructible]), as well as the additional requirements
|
|
listed below.
|
|
|
|
In the table below, `x1` and `x2` denote (possibly const) values of type `X`,
|
|
`mx1` denotes an xvalue of type `X`, `H` denotes a type that satisfies
|
|
`CancellationHandler`, `h` denotes an xvalue of type `H`, and `u0` to `uN`
|
|
denote identifiers.
|
|
|
|
[table CancellationSlot requirements
|
|
[[expression] [type] [assertion/note[br]pre/post-conditions]]
|
|
[
|
|
[`X u(x1);`]
|
|
[]
|
|
[Shall not exit via an exception.[br]
|
|
[br]
|
|
post: `u == x1`.]
|
|
]
|
|
[
|
|
[`X u(mx1);`]
|
|
[]
|
|
[Shall not exit via an exception.[br]
|
|
[br]
|
|
post: `u` equals the prior value of `mx1`.]
|
|
]
|
|
[
|
|
[`x1 == x2`]
|
|
[`bool`]
|
|
[ Returns `true` only if `x1` and `x2` can be interchanged with identical
|
|
effects.
|
|
[br]
|
|
`operator==` shall be reflexive, symmetric, and transitive, and shall not
|
|
exit via an exception.]
|
|
]
|
|
[
|
|
[`x1 != x2`]
|
|
[`bool`]
|
|
[Same as `!(x1 == x2)`.]
|
|
]
|
|
[
|
|
[`x1.is_connected()`]
|
|
[`bool`]
|
|
[Returns `false` only if the slot can never cause the invocation of a
|
|
handler attached to the slot using `assign` or `emplace`.]
|
|
]
|
|
[
|
|
[`x1.has_handler()`]
|
|
[`bool`]
|
|
[Returns `true` if a handler has been attached to the slot.]
|
|
]
|
|
[
|
|
[`x1.assign(h)`]
|
|
[`H&`]
|
|
[Destroys the existing handler that is attached to the slot, if any, and
|
|
attaches a move-constructed decay-copy of the handler `h`.[br]
|
|
[br]
|
|
Returns a reference to the newly attached handler.[br]
|
|
[br]
|
|
post: `x1.has_handler() == true`.]
|
|
]
|
|
[
|
|
[`x1.emplace<H>(u0, ..., uN)`]
|
|
[`H&`]
|
|
[Requires that `is_constructible<H, decltype(u0), ...,
|
|
decltype(u0)>::value` be true.[br]
|
|
[br]
|
|
Destroys the existing handler that is attached to the slot, if any, and
|
|
attaches a handler of type `H` constructed with the specified arguments
|
|
`u0, ..., uN`.[br]
|
|
[br]
|
|
Returns a reference to the newly attached handler.[br]
|
|
[br]
|
|
post: `x1.has_handler() == true`.]
|
|
]
|
|
[
|
|
[`x1.clear()`]
|
|
[]
|
|
[Post: `x1.has_handler() == false`.]
|
|
]
|
|
]
|
|
|
|
[endsect]
|