1 // 2 // handler_continuation_hook.hpp 3 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 // 5 // Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) 6 // 7 // Distributed under the Boost Software License, Version 1.0. (See accompanying 8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9 // 10 11 #ifndef ASIO_HANDLER_CONTINUATION_HOOK_HPP 12 #define ASIO_HANDLER_CONTINUATION_HOOK_HPP 13 14 15 #include "asio/detail/config.hpp" 16 17 #include "asio/detail/push_options.hpp" 18 19 namespace asio { 20 21 /// Default continuation function for handlers. 22 /** 23 * Asynchronous operations may represent a continuation of the asynchronous 24 * control flow associated with the current handler. The implementation can use 25 * this knowledge to optimise scheduling of the handler. 26 * 27 * Implement asio_handler_is_continuation for your own handlers to indicate 28 * when a handler represents a continuation. 29 * 30 * The default implementation of the continuation hook returns <tt>false</tt>. 31 * 32 * @par Example 33 * @code 34 * class my_handler; 35 * 36 * bool asio_handler_is_continuation(my_handler* context) 37 * { 38 * return true; 39 * } 40 * @endcode 41 */ 42 inline bool asio_handler_is_continuation(...) 43 { 44 return false; 45 } 46 47 } // namespace asio 48 49 #include "asio/detail/pop_options.hpp" 50 51 #endif // ASIO_HANDLER_CONTINUATION_HOOK_HPP 52