1[/
2 / Copyright (c) 2003-2015 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:ShutdownHandler SSL shutdown handler requirements]
9
10A shutdown handler must meet the requirements for a [link
11boost_asio.reference.Handler handler]. A value `h` of a shutdown handler
12class should work correctly in the expression `h(ec)`, where `ec` is an lvalue
13of type `const error_code`.
14
15[heading Examples]
16
17A free function as a shutdown handler:
18
19  void shutdown_handler(
20      const boost::system::error_code& ec)
21  {
22    ...
23  }
24
25A shutdown handler function object:
26
27  struct shutdown_handler
28  {
29    ...
30    void operator()(
31        const boost::system::error_code& ec)
32    {
33      ...
34    }
35    ...
36  };
37
38A non-static class member function adapted to a shutdown handler using `bind()`:
39
40  void my_class::shutdown_handler(
41      const boost::system::error_code& ec)
42  {
43    ...
44  }
45  ...
46  ssl_stream.async_shutdown(
47      boost::bind(&my_class::shutdown_handler,
48        this, boost::asio::placeholders::error));
49
50[endsect]
51