IoObjectService.qbk 1.4 KB

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