• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:Protocol Protocol requirements]
9
10A type `X` meets the `Protocol` requirements if it satisfies the requirements
11of `Destructible` (C++Std [destructible]), `CopyConstructible` (C++Std
12[copyconstructible]), and `CopyAssignable` (C++Std [copyassignable]), as well
13as the additional requirements listed below.
14
15No copy or move operation of the type `X` shall exit via an exception.
16
17[table Protocol requirements
18  [[expression] [return type] [assertion/note[br]pre/post-conditions]]
19  [
20    [`X::endpoint`]
21    [type meeting [link boost_asio.reference.Endpoint endpoint] requirements]
22    []
23  ]
24]
25
26In the table below, `a` denotes a (possibly const) value of type `X`.
27
28[table Protocol requirements for extensible implementations
29  [[expression] [return type] [assertion/note[br]pre/post-conditions]]
30  [
31    [`a.family()`]
32    [`int`]
33    [
34      Returns a value suitable for passing as the /domain/ argument to
35      __POSIX__ __socket__ (or equivalent).
36    ]
37  ]
38  [
39    [`a.type()`]
40    [`int`]
41    [
42      Returns a value suitable for passing as the /type/ argument to __POSIX__
43      __socket__ (or equivalent).
44    ]
45  ]
46  [
47    [`a.protocol()`]
48    [`int`]
49    [
50      Returns a value suitable for passing as the /protocol/ argument to
51      __POSIX__ __socket__ (or equivalent).
52    ]
53  ]
54]
55
56[endsect]
57