📄 pool_adaptors.hpp
字号:
/*! \file* \brief Pool adaptors.** This file contains an easy-to-use adaptor similar to a smart * pointer for the pool class. ** Copyright (c) 2005-2007 Philipp Henkel** Use, modification, and distribution are subject to the* Boost Software License, Version 1.0. (See accompanying file* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)** http://threadpool.sourceforge.net**/#ifndef THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED#define THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED#include <boost/smart_ptr.hpp>namespace boost { namespace threadpool{// TODO convenience scheduling function /*! Schedules a Runnable for asynchronous execution. A Runnable is an arbitrary class with a run() * member function. This a convenience shorthand for pool->schedule(bind(&Runnable::run, task_object)). * \param * \param obj The Runnable object. The member function run() will be exectued and should not throw execeptions. * \return true, if the task could be scheduled and false otherwise. */ template<typename Pool, typename Runnable> bool schedule(Pool& pool, shared_ptr<Runnable> const & obj) { return pool->schedule(bind(&Runnable::run, obj)); } /*! Schedules a task for asynchronous execution. The task will be executed once only. * \param task The task function object. */ template<typename Pool> typename enable_if < is_void< typename result_of< typename Pool::task_type() >::type >, bool >::type schedule(Pool& pool, typename Pool::task_type const & task) { return pool.schedule(task); } template<typename Pool> typename enable_if < is_void< typename result_of< typename Pool::task_type() >::type >, bool >::type schedule(shared_ptr<Pool> const pool, typename Pool::task_type const & task) { return pool->schedule(task); } } } // namespace boost::threadpool#endif // THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -