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