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