template<typename ColT, typename IndexT, typename BaseProxyT>
vt::vrt::collection::Broadcastable struct

Constructors, destructors, conversion operators

Broadcastable() defaulted
Broadcastable(Broadcastable const&) defaulted
Broadcastable(Broadcastable&&) defaulted
Broadcastable(VirtualProxyType const in_proxy)

Public functions

auto operator=(Broadcastable const&) -> Broadcastable& defaulted
template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f>
auto broadcast(MsgT* msg) const -> messaging::PendingSend
template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f>
auto broadcast(MsgSharedPtr<MsgT> msg) const -> messaging::PendingSend
template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f>
auto broadcastMsg(messaging::MsgPtrThief<MsgT> msg) const -> messaging::PendingSend
Rooted broadcast with action function handler.
template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f, typename... Args>
auto broadcast(Args && ... args) const -> messaging::PendingSend
Rooted broadcast with action function handler.
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f>
auto broadcast(MsgT* msg) const -> messaging::PendingSend
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f>
auto broadcast(MsgSharedPtr<MsgT> msg) const -> messaging::PendingSend
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f>
auto broadcastMsg(messaging::MsgPtrThief<MsgT> msg) const -> messaging::PendingSend
Rooted broadcast with action member handler.
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f, typename... Args>
auto broadcast(Args && ... args) const -> messaging::PendingSend
Rooted broadcast with action member handler.
template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f>
auto broadcastCollectiveMsg(messaging::MsgPtrThief<MsgT> msg) const -> messaging::PendingSend
Collective broadcast with action function handler.
template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f, typename... Args>
auto broadcastCollective(Args && ... args) const -> messaging::PendingSend
Create message (with action function handler) and broadcast it in a collective manner to the collection.
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f>
auto broadcastCollectiveMsg(messaging::MsgPtrThief<MsgT> msg) const -> messaging::PendingSend
Collective broadcast with action member handler.
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f, typename... Args>
auto broadcastCollective(Args && ... args) const -> messaging::PendingSend
Create message (with action member handler) and broadcast it in a collective manner to the collection.
template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f, typename... Args>
void invokeCollective(Args && ... args) const
Invoke member message handler on all collection elements The function will be invoked inline without going through scheduler.
template<typename MsgT, ActiveColTypedFnType<MsgT, typename MsgT::CollectionType>* f, typename... Args>
void invokeCollective(Args && ... args) const
Invoke message handler on all collection elements The function will be invoked inline without going through scheduler.
template<auto f>
auto broadcastMsg(messaging::MsgPtrThief<typename ObjFuncTraits<decltype(f)>::MsgT> msg) const -> messaging::PendingSend
Rooted broadcast with action function handler.
template<auto f, typename... Args>
auto broadcast(Args && ... args) const -> messaging::PendingSend
Rooted broadcast with action function handler.
template<auto f>
auto broadcastCollectiveMsg(messaging::MsgPtrThief<typename ObjFuncTraits<decltype(f)>::MsgT> msg) const -> messaging::PendingSend
Collective broadcast with action function handler.
template<auto f, typename... Args>
auto broadcastCollective(Args && ... args) const -> messaging::PendingSend
Create message (with action function handler) and broadcast it in a collective manner to the collection.
template<auto f, typename... Args>
void invokeCollective(Args && ... args) const
Invoke member message handler on all collection elements The function will be invoked inline without going through scheduler.

Function documentation

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastMsg(messaging::MsgPtrThief<MsgT> msg) const

Rooted broadcast with action function handler.

Parameters
msg in the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f, typename... Args>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcast(Args && ... args) const

Rooted broadcast with action function handler.

Parameters
args in arguments needed for creating the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastMsg(messaging::MsgPtrThief<MsgT> msg) const

Rooted broadcast with action member handler.

Parameters
msg in the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f, typename... Args>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcast(Args && ... args) const

Rooted broadcast with action member handler.

Parameters
args in arguments needed for creating the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastCollectiveMsg(messaging::MsgPtrThief<MsgT> msg) const

Collective broadcast with action function handler.

Parameters
msg in the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColTypedFnType<MsgT, ColT>* f, typename... Args>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastCollective(Args && ... args) const

Create message (with action function handler) and broadcast it in a collective manner to the collection.

Parameters
args in arguments needed for creating the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastCollectiveMsg(messaging::MsgPtrThief<MsgT> msg) const

Collective broadcast with action member handler.

Parameters
msg in the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f, typename... Args>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastCollective(Args && ... args) const

Create message (with action member handler) and broadcast it in a collective manner to the collection.

Parameters
args in arguments needed for creating the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColMemberTypedFnType<MsgT, ColT> f, typename... Args>
void vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::invokeCollective(Args && ... args) const

Invoke member message handler on all collection elements The function will be invoked inline without going through scheduler.

Parameters
args in arguments for creating the message

template<typename ColT, typename IndexT, typename BaseProxyT> template<typename MsgT, ActiveColTypedFnType<MsgT, typename MsgT::CollectionType>* f, typename... Args>
void vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::invokeCollective(Args && ... args) const

Invoke message handler on all collection elements The function will be invoked inline without going through scheduler.

Parameters
args in arguments for creating the message

template<typename ColT, typename IndexT, typename BaseProxyT> template<auto f>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastMsg(messaging::MsgPtrThief<typename ObjFuncTraits<decltype(f)>::MsgT> msg) const

Rooted broadcast with action function handler.

Parameters
msg in the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<auto f, typename... Args>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcast(Args && ... args) const

Rooted broadcast with action function handler.

Parameters
args in arguments needed for creating the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<auto f>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastCollectiveMsg(messaging::MsgPtrThief<typename ObjFuncTraits<decltype(f)>::MsgT> msg) const

Collective broadcast with action function handler.

Parameters
msg in the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<auto f, typename... Args>
messaging::PendingSend vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::broadcastCollective(Args && ... args) const

Create message (with action function handler) and broadcast it in a collective manner to the collection.

Parameters
args in arguments needed for creating the message
Returns a pending send

template<typename ColT, typename IndexT, typename BaseProxyT> template<auto f, typename... Args>
void vt::vrt::collection::Broadcastable<ColT, IndexT, BaseProxyT>::invokeCollective(Args && ... args) const

Invoke member message handler on all collection elements The function will be invoked inline without going through scheduler.

Parameters
args in arguments for creating the message