hpx::components::client_base#

Defined in header hpx/components.hpp.

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

template<typename Derived>
struct is_client<Derived, std::void_t<typename Derived::is_client_tag>> : public true_type#
namespace hpx
namespace components

Functions

template<typename Derived, typename Stub, typename Data>
bool operator==(client_base<Derived, Stub, Data> const &lhs, client_base<Derived, Stub, Data> const &rhs)#
template<typename Derived, typename Stub, typename Data>
bool operator<(client_base<Derived, Stub, Data> const &lhs, client_base<Derived, Stub, Data> const &rhs)#
template<typename Derived, typename Stub, typename Data>
class client_base : public detail::make_stub::type<Stub>#
#include <client_base.hpp>

This class template serves as a base class for client components, providing common functionality such as managing shared state, ID retrieval, and asynchronous operations.

Template Parameters
  • Derived – The derived client component type.

  • Stub – The stub type used for communication.

  • Data – The extra data type used for additional information.

Public Types

using stub_argument_type = Stub#
using server_component_type = typename detail::make_stub<Stub>::server_component_type#
using is_client_tag = void#

Public Functions

client_base() = default#
inline explicit client_base(id_type const &id)#
inline explicit client_base(id_type &&id)#
inline explicit client_base(hpx::shared_future<hpx::id_type> const &f) noexcept#
inline explicit client_base(hpx::shared_future<hpx::id_type> &&f) noexcept#
inline explicit client_base(hpx::future<hpx::id_type> &&f) noexcept#
client_base(client_base const &rhs) = default#
client_base(client_base &&rhs) noexcept = default#
inline client_base(hpx::future<Derived> &&d)#
~client_base() = default#
inline client_base &operator=(hpx::id_type const &id)#
inline client_base &operator=(hpx::id_type &&id)#
inline client_base &operator=(hpx::shared_future<hpx::id_type> const &f) noexcept#
inline client_base &operator=(hpx::shared_future<hpx::id_type> &&f) noexcept#
inline client_base &operator=(hpx::future<hpx::id_type> &&f) noexcept#
client_base &operator=(client_base const &rhs) = default#
client_base &operator=(client_base &&rhs) noexcept = default#
inline bool valid() const noexcept#
inline explicit operator bool() const noexcept#
inline void free()#
inline hpx::id_type const &get_id(error_code &ec = hpx::throws) const#
inline naming::gid_type const &get_raw_gid() const#
inline hpx::shared_future<hpx::id_type> detach()#
inline hpx::shared_future<hpx::id_type> share() const#
inline void reset(hpx::id_type const &id)#
inline void reset(hpx::id_type &&id)#
inline void reset(shared_future<hpx::id_type> &&rhs)#
inline id_type const &get(error_code &ec = hpx::throws) const#
inline bool is_ready() const noexcept#
inline bool has_value() const noexcept#
inline bool has_exception() const noexcept#
inline void wait() const#
inline std::exception_ptr get_exception_ptr() const#
template<typename F>
inline hpx::traits::future_then_result_t<Derived, F> then(launch l, F &&f) const#
template<typename F>
inline hpx::traits::future_then_result_t<Derived, F> then(launch::sync_policy l, F &&f) const#
template<typename F>
inline hpx::traits::future_then_result_t<Derived, F> then(F &&f) const#
inline hpx::future<bool> register_as(std::string symbolic_name, bool manage_lifetime = true)#
inline bool register_as(launch::sync_policy, std::string symbolic_name, bool manage_lifetime = true)#
inline void connect_to(std::string const &symbolic_name)#
inline std::string const &registered_name() const#
template<typename T>
inline T &get_extra_data()#
template<typename T>
inline T *try_get_extra_data() const noexcept#

Protected Types

using stub_type = typename detail::make_stub<Stub>::type#
using base_shared_state_type = lcos::detail::future_data_base<hpx::id_type>#
using shared_state_type = lcos::detail::future_data<hpx::id_type>#
using future_type = shared_future<hpx::id_type>#
using extra_data_type = Data#

Protected Functions

inline client_base(hpx::intrusive_ptr<base_shared_state_type> const &state)#
inline client_base(hpx::intrusive_ptr<base_shared_state_type> &&state)#

Protected Attributes

hpx::intrusive_ptr<base_shared_state_type> shared_state_#

Private Static Functions

template<typename F>
static inline hpx::traits::future_then_result<Derived, F>::cont_result on_ready(hpx::shared_future<id_type> &&fut, F f)#
static inline bool register_as_helper(client_base const &f, std::string symbolic_name, bool manage_lifetime)#
namespace lcos
namespace serialization

Functions

template<typename Archive, typename Derived, typename Stub, typename Data>
void serialize(Archive &ar, ::hpx::components::client_base<Derived, Stub, Data> &f, unsigned version)#
namespace traits
template<typename Derived> is_client_tag > > : public true_type