]>
Commit | Line | Data |
---|---|---|
1 | [/ | |
2 | / Copyright (c) 2003-2016 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:IoObjectService I/O object service requirements] | |
9 | ||
10 | An I/O object service must meet the requirements for a [link | |
11 | boost_asio.reference.Service service], as well as the requirements listed | |
12 | below. | |
13 | ||
14 | In the table below, `X` denotes an I/O object service class, `a` and `ao` denote | |
15 | values of type `X`, `b` and `c` denote values of type `X::implementation_type`, | |
16 | and `u` denotes an identifier. | |
17 | ||
18 | [table IoObjectService requirements | |
19 | [[expression] [return type] [assertion/note\npre/post-condition]] | |
20 | [ | |
21 | [`X::implementation_type`] | |
22 | [] | |
23 | [] | |
24 | ] | |
25 | [ | |
26 | [`X::implementation_type u;`] | |
27 | [] | |
28 | [note: `X::implementation_type` has a public default constructor and | |
29 | destructor.] | |
30 | ] | |
31 | [ | |
32 | [`` | |
33 | a.construct(b); | |
34 | ``] | |
35 | [] | |
36 | [] | |
37 | ] | |
38 | [ | |
39 | [`` | |
40 | a.destroy(b); | |
41 | ``] | |
42 | [] | |
43 | [note: `destroy()` will only be called on a value that has previously been | |
44 | initialised with `construct()` or `move_construct()`.] | |
45 | ] | |
46 | [ | |
47 | [`` | |
48 | a.move_construct(b, c); | |
49 | ``] | |
50 | [] | |
51 | [note: only required for I/O objects that support movability.] | |
52 | ] | |
53 | [ | |
54 | [`` | |
55 | a.move_assign(b, ao, c); | |
56 | ``] | |
57 | [] | |
58 | [note: only required for I/O objects that support movability.] | |
59 | ] | |
60 | ] | |
61 | ||
62 | [endsect] |