hpx/async_distributed/packaged_action.hpp#

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace lcos
template<typename Action, typename Result = typename traits::promise_local_result<typename Action::remote_result_type>::type, bool DirectExecute = Action::direct_execution::value>
class packaged_action
#include <packaged_action.hpp>
template<typename Action, typename Result>
class packaged_action<Action, Result, false> : public hpx::distributed::promise<Result, hpx::traits::extract_action<Action>::remote_result_type>#

Subclassed by hpx::lcos::packaged_action< Action, Result, true >

Public Functions

inline packaged_action()#
template<typename Allocator>
inline packaged_action(std::allocator_arg_t, Allocator const &alloc)#
template<typename ...Ts>
inline void post(hpx::id_type const &id, Ts&&... vs)#
template<typename ...Ts>
inline void post(naming::address &&addr, hpx::id_type const &id, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_cb(hpx::id_type const &id, Callback &&cb, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_cb(naming::address &&addr, hpx::id_type const &id, Callback &&cb, Ts&&... vs)#
template<typename ...Ts>
inline void post_p(hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)#
template<typename ...Ts>
inline void post_p(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_p_cb(hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_p_cb(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)#
template<typename ...Ts>
inline void post_deferred(naming::address &&addr, hpx::id_type const &id, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_deferred_cb(naming::address &&addr, hpx::id_type const &id, Callback &&cb, Ts&&... vs)#

Protected Types

using action_type = typename hpx::traits::extract_action<Action>::type#
using remote_result_type = typename action_type::remote_result_type#
using base_type = hpx::distributed::promise<Result, remote_result_type>#

Protected Functions

template<typename ...Ts>
inline void do_post(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)#
template<typename ...Ts>
inline void do_post(hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void do_post_cb(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void do_post_cb(hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)#
template<typename Action, typename Result>
class packaged_action<Action, Result, true> : public hpx::lcos::packaged_action<Action, Result, false>#

Public Functions

inline packaged_action()#

Construct a (non-functional) instance of an packaged_action. To use this instance its member function post needs to be directly called.

template<typename Allocator>
inline packaged_action(std::allocator_arg_t, Allocator const &alloc)#
template<typename ...Ts>
inline void post(hpx::id_type const &id, Ts&&... vs)#
template<typename ...Ts>
inline void post(naming::address &&addr, hpx::id_type const &id, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_cb(hpx::id_type const &id, Callback &&cb, Ts&&... vs)#
template<typename Callback, typename ...Ts>
inline void post_cb(naming::address &&addr, hpx::id_type const &id, Callback &&cb, Ts&&... vs)#

Private Types

using action_type = typename packaged_action<Action, Result, false>::action_type#