1[/ 2 / Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) 3 / 4 / Distributed under the Boost Software License, Version 1.0. (See accompanying 5 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 /] 7 8[section:CompletionCondition Completion condition requirements] 9 10A ['completion condition] is a function object that is used with the algorithms 11[link boost_asio.reference.read `read`], [link boost_asio.reference.async_read 12`async_read`], [link boost_asio.reference.write `write`], and [link 13boost_asio.reference.async_write `async_write`] to determine when the algorithm has 14completed transferring data. 15 16A type `X` meets the `CompletionCondition` requirements if it satisfies the 17requirements of `Destructible` (C++Std [destructible]) and 18`MoveConstructible` (C++Std [moveconstructible]), as well as the additional 19requirements listed below. 20 21In the table below, `x` denotes a value of type `X`, `ec` denotes a (possibly 22const) value of type `error_code`, and `n` denotes a (possibly const) value of 23type `size_t`. 24 25[table CompletionCondition requirements 26 [[expression] [return type] [assertion/note[br]pre/post-condition]] 27 [ 28 [`x(ec, n)`] 29 [`size_t`] 30 [ 31 Let `n` be the total number of bytes transferred by the read or write 32 algorithm so far.[br] 33 [br] 34 Returns the maximum number of bytes to be transferred on the next 35 `read_some`, `async_read_some`, `write_some`, or `async_write_some` 36 operation performed by the algorithm. Returns `0` to indicate that the 37 algorithm is complete. 38 ] 39 ] 40] 41 42[endsect] 43