diff options
Diffstat (limited to 'boost/fiber/future/detail/task_base.hpp')
-rw-r--r-- | boost/fiber/future/detail/task_base.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/boost/fiber/future/detail/task_base.hpp b/boost/fiber/future/detail/task_base.hpp new file mode 100644 index 0000000000..907e820470 --- /dev/null +++ b/boost/fiber/future/detail/task_base.hpp @@ -0,0 +1,41 @@ +// Copyright Oliver Kowalke 2013. +// Distributed under 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) + +#ifndef BOOST_FIBERS_DETAIL_TASK_BASE_H +#define BOOST_FIBERS_DETAIL_TASK_BASE_H + +#include <boost/config.hpp> +#include <boost/intrusive_ptr.hpp> + +#include <boost/fiber/detail/config.hpp> +#include <boost/fiber/future/detail/shared_state.hpp> + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_PREFIX +#endif + +namespace boost { +namespace fibers { +namespace detail { + +template< typename R, typename ... Args > +struct task_base : public shared_state< R > { + typedef intrusive_ptr< task_base > ptr_t; + + virtual ~task_base() { + } + + virtual void run( Args && ... args) = 0; + + virtual ptr_t reset() = 0; +}; + +}}} + +#ifdef BOOST_HAS_ABI_HEADERS +# include BOOST_ABI_SUFFIX +#endif + +#endif // BOOST_FIBERS_DETAIL_TASK_BASE_H |