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 19namespace 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 */ 42inline 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