lcos_distributed¶
The contents of this module can be included with the header
hpx/modules/lcos_distributed.hpp. These headers may be used by user-code but are not
guaranteed stable (neither header location nor contents). You are using these at
your own risk. If you wish to use non-public functionality from a module we
strongly suggest only including the module header hpx/modules/lcos_distributed.hpp, not
the particular header in which the functionality you would like to use is
defined. See Public API for a list of names that are part of the public
HPX API.
-
namespace
hpx -
namespace
lcos -
template<typename
T>
classchannel¶ Public Types
-
template<>
usingvalue_type= T¶
Public Functions
-
channel()¶
-
hpx::future<T>
get(launch::async_policy, std::size_t generation = default_generation) const¶
-
hpx::future<T>
get(std::size_t generation = default_generation) const¶
-
T
get(launch::sync_policy, std::size_t generation = default_generation, hpx::error_code &ec = hpx::throws) const¶
-
T
get(launch::sync_policy, hpx::error_code &ec, std::size_t generation = default_generation) const¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value, bool>set(launch::apply_policy, U val, std::size_t generation = default_generation)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value, hpx::future<void>>set(launch::async_policy, U val, std::size_t generation = default_generation)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value>set(launch::sync_policy, U val, std::size_t generation = default_generation)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value && !traits::is_launch_policy<U>::value>set(U val, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value, bool>set(launch::apply_policy, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value, hpx::future<void>>set(launch::async_policy, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value>set(launch::sync_policy, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value>set(std::size_t generation = default_generation)¶
-
channel_iterator<T, channel<T>>
begin() const¶
-
channel_iterator<T, channel<T>>
end() const¶
-
channel_iterator<T, channel<T>>
rbegin() const¶
-
channel_iterator<T, channel<T>>
rend() const¶
Private Types
-
template<>
usingbase_type= components::client_base<channel<T>, lcos::server::channel<T>>¶
-
template<>
-
template<typename
T, typenameChannel>
classchannel_iterator: public hpx::util::iterator_facade<channel_iterator<T, Channel>, T const, std::input_iterator_tag>¶ -
Private Types
Private Functions
-
bool
equal(channel_iterator const &rhs) const¶
-
void
increment()¶
-
base_type::reference
dereference() const¶
Friends
-
friend
hpx::lcos::hpx::util::iterator_core_access
-
bool
-
template<typename
Channel>
classchannel_iterator<void, Channel> : public hpx::util::iterator_facade<channel_iterator<void, Channel>, util::unused_type const, std::input_iterator_tag>¶ Public Functions
-
channel_iterator()
-
channel_iterator(Channel const &c)
Private Types
Private Functions
-
bool
get_checked()¶
-
bool
equal(channel_iterator const &rhs) const
-
void
increment()
-
base_type::reference
dereference() const
Private Members
-
Channel const *
channel_
-
bool
data_
Friends
-
friend
hpx::lcos::hpx::util::iterator_core_access
-
-
template<typename
T>
classreceive_channel¶ Public Types
-
template<>
usingvalue_type= T¶
Public Functions
-
receive_channel()¶
-
receive_channel(channel<T> const &c)¶
-
hpx::future<T>
get(launch::async_policy, std::size_t generation = default_generation) const¶
-
hpx::future<T>
get(std::size_t generation = default_generation) const¶
-
T
get(launch::sync_policy, std::size_t generation = default_generation, hpx::error_code &ec = hpx::throws) const¶
-
T
get(launch::sync_policy, hpx::error_code &ec, std::size_t generation = default_generation) const¶
-
channel_iterator<T, channel<T>>
begin() const¶
-
channel_iterator<T, channel<T>>
end() const¶
-
channel_iterator<T, channel<T>>
rbegin() const¶
-
channel_iterator<T, channel<T>>
rend() const¶
Private Types
-
template<>
usingbase_type= components::client_base<receive_channel<T>, lcos::server::channel<T>>¶
-
template<>
-
template<typename
T>
classsend_channel¶ Public Types
-
template<>
usingvalue_type= T¶
Public Functions
-
send_channel()¶
-
send_channel(channel<T> const &c)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value, bool>set(launch::apply_policy, U val, std::size_t generation = default_generation)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value, hpx::future<void>>set(launch::async_policy, U val, std::size_t generation = default_generation)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value>set(launch::sync_policy, U val, std::size_t generation = default_generation)¶
-
template<typename
U, typenameU2= T>
std::enable_if_t<!std::is_void<U2>::value && !traits::is_launch_policy<U>::value>set(U val, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value, bool>set(launch::apply_policy, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value, hpx::future<void>>set(launch::async_policy, std::size_t generation = default_generation)¶
-
template<typename
U= T>
std::enable_if_t<std::is_void<U>::value>set(launch::sync_policy, std::size_t generation = default_generation)¶
Private Types
-
template<>
usingbase_type= components::client_base<send_channel<T>, lcos::server::channel<T>>¶
-
template<>
-
template<typename
-
namespace
-
namespace
hpx -
namespace
lcos -
template<typename
ValueType>
structobject_semaphore: public components::client_base<object_semaphore<ValueType>, lcos::server::object_semaphore<ValueType>>¶ Public Types
-
template<>
usingbase_type= components::client_base<object_semaphore, lcos::server::object_semaphore<ValueType>>¶
Public Functions
-
object_semaphore()¶
-
future<void>
abort_pending(launch::async_policy, error ec = no_success)¶
-
void
abort_pending(launch::sync_policy, error = no_success)¶
-
template<>
-
template<typename
-
namespace
Defines
-
HPX_REGISTER_CHANNEL_DECLARATION(...)¶
-
HPX_REGISTER_CHANNEL_DECLARATION_(...)¶
-
HPX_REGISTER_CHANNEL_DECLARATION_1(type)¶
-
HPX_REGISTER_CHANNEL_DECLARATION_2(type, name)¶
-
HPX_REGISTER_CHANNEL(...)¶
-
HPX_REGISTER_CHANNEL_(...)¶
-
HPX_REGISTER_CHANNEL_1(type)¶
-
HPX_REGISTER_CHANNEL_2(type, name)¶
-
namespace
hpx -
namespace
lcos -
namespace
server¶ -
template<typename
T, typenameRemoteType>
classchannel¶ Public Types
Public Functions
-
channel()¶
-
void
set_value(RemoteType &&result)¶
-
result_type
get_value()¶
-
result_type
get_value(error_code &ec)¶
-
HPX_DEFINE_COMPONENT_DIRECT_ACTION(channel, get_generation)¶
-
HPX_DEFINE_COMPONENT_DIRECT_ACTION(channel, set_generation)¶
Public Static Functions
-
static components::component_type
get_component_type()¶
-
static void
set_component_type(components::component_type type)¶
Private Types
-
template<>
usingbase_type= components::component_base<channel>¶
-
template<>
usingresult_type= std::conditional_t<std::is_void<T>::value, util::unused_type, T>¶
-
-
template<typename
-
namespace
-
namespace
-
namespace
hpx -
namespace
lcos -
namespace
server -
template<typename
ValueType>
structobject_semaphore: public components::managed_component_base<object_semaphore<ValueType>>¶ Public Types
-
template<>
usingbase_type= components::managed_component_base<object_semaphore>¶
-
template<>
usingslist_option_type= boost::intrusive::member_hook<queue_thread_entry, typename queue_thread_entry::hook_type, &queue_thread_entry::slist_hook_>¶
-
template<>
usingthread_queue_type= boost::intrusive::slist<queue_thread_entry, slist_option_type, boost::intrusive::cache_last<true>, boost::intrusive::constant_time_size<false>>¶
-
template<>
usingvalue_slist_option_type= boost::intrusive::member_hook<queue_value_entry, typename queue_value_entry::hook_type, &queue_value_entry::slist_hook_>¶
-
template<>
usingvalue_queue_type= boost::intrusive::slist<queue_value_entry, value_slist_option_type, boost::intrusive::cache_last<true>, boost::intrusive::constant_time_size<false>>¶
Public Functions
-
object_semaphore()¶
-
~object_semaphore()¶
-
void
wait()¶
-
HPX_DEFINE_COMPONENT_ACTION(object_semaphore, abort_pending, abort_pending_action)¶
-
struct
queue_thread_entry¶ Public Types
-
template<>
-
template<typename
-
namespace
-
namespace