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>
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

packaged_action()
template<typename Allocator>
packaged_action(std::allocator_arg_t, Allocator const &alloc)
template<typename ...Ts>
void apply(hpx::id_type const &id, Ts&&... vs)
template<typename ...Ts>
void apply(naming::address &&addr, hpx::id_type const &id, Ts&&... vs)
template<typename Callback, typename ...Ts>
void apply_cb(hpx::id_type const &id, Callback &&cb, Ts&&... vs)
template<typename Callback, typename ...Ts>
void apply_cb(naming::address &&addr, hpx::id_type const &id, Callback &&cb, Ts&&... vs)
template<typename ...Ts>
void apply_p(hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)
template<typename ...Ts>
void apply_p(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)
template<typename Callback, typename ...Ts>
void apply_p_cb(hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)
template<typename Callback, typename ...Ts>
void apply_p_cb(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)
template<typename ...Ts>
void apply_deferred(naming::address &&addr, hpx::id_type const &id, Ts&&... vs)
template<typename Callback, typename ...Ts>
void apply_deferred_cb(naming::address &&addr, hpx::id_type const &id, Callback &&cb, Ts&&... vs)

Protected Types

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

Protected Functions

template<typename ...Ts>
void do_apply(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)
template<typename ...Ts>
void do_apply(hpx::id_type const &id, threads::thread_priority priority, Ts&&... vs)
template<typename Callback, typename ...Ts>
void do_apply_cb(naming::address &&addr, hpx::id_type const &id, threads::thread_priority priority, Callback &&cb, Ts&&... vs)
template<typename Callback, typename ...Ts>
void do_apply_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

packaged_action()

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

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

Private Types

template<>
using action_type = typename packaged_action::action_type