File indexing completed on 2025-01-31 09:37:22
0001
0002
0003
0004
0005
0006 #ifndef BOOST_FIBERS_DETAIL_TASK_BASE_H
0007 #define BOOST_FIBERS_DETAIL_TASK_BASE_H
0008
0009 #include <boost/config.hpp>
0010 #include <boost/intrusive_ptr.hpp>
0011
0012 #include <boost/fiber/detail/config.hpp>
0013 #include <boost/fiber/future/detail/shared_state.hpp>
0014
0015 #ifdef BOOST_HAS_ABI_HEADERS
0016 # include BOOST_ABI_PREFIX
0017 #endif
0018
0019 namespace boost {
0020 namespace fibers {
0021 namespace detail {
0022
0023 template< typename R, typename ... Args >
0024 struct task_base : public shared_state< R > {
0025 typedef intrusive_ptr< task_base > ptr_type;
0026
0027 virtual ~task_base() {
0028 }
0029
0030 virtual void run( Args && ... args) = 0;
0031
0032 virtual ptr_type reset() = 0;
0033 };
0034
0035 }}}
0036
0037 #ifdef BOOST_HAS_ABI_HEADERS
0038 # include BOOST_ABI_SUFFIX
0039 #endif
0040
0041 #endif