vt::objgroup namespace

Namespaces

namespace detail
namespace holder
namespace proxy
namespace registry

Classes

struct BaseObj
struct ObjGroupManager
A core VT component that can create groups with one object per node.

Typedefs

using ActiveObjAnyType = void(BaseObj::*)(vt::BaseMessage*)
using ActiveObjType = void(ObjT::*)(MsgT*)
using ObjGroupIDType = uint32_t
using ObjTypeIdxType = uint16_t

Functions

auto getObjs() -> std::unordered_map<ObjGroupProxyType, std::unique_ptr<holder::HolderBase>>&
auto getPending() -> std::unordered_map<ObjGroupProxyType, std::vector<ActionType>>&
template<typename MsgT>
void dispatchObjGroup(MsgSharedPtr<MsgT> msg, HandlerType han, NodeType from_node, ActionType cont)
template<typename MsgT>
auto send(MsgSharedPtr<MsgT> msg, HandlerType han, NodeType node) -> messaging::PendingSend
template<typename ObjT, typename MsgT, auto f>
auto invoke(messaging::MsgSharedPtr<MsgT> msg, HandlerType han, NodeType node) -> decltype(auto)
template<typename MsgT>
auto broadcast(MsgSharedPtr<MsgT> msg, HandlerType han) -> messaging::PendingSend

Variables

static ObjGroupIDType const fst_obj_group_id constexpr

Typedef documentation

using vt::objgroup::ActiveObjAnyType = void(BaseObj::*)(vt::BaseMessage*)

using vt::objgroup::ActiveObjType = void(ObjT::*)(MsgT*)

using vt::objgroup::ObjGroupIDType = uint32_t

using vt::objgroup::ObjTypeIdxType = uint16_t

Function documentation

std::unordered_map<ObjGroupProxyType, std::unique_ptr<holder::HolderBase>>& vt::objgroup::getObjs()

std::unordered_map<ObjGroupProxyType, std::vector<ActionType>>& vt::objgroup::getPending()

template<typename MsgT>
void vt::objgroup::dispatchObjGroup(MsgSharedPtr<MsgT> msg, HandlerType han, NodeType from_node, ActionType cont)

template<typename MsgT>
messaging::PendingSend vt::objgroup::send(MsgSharedPtr<MsgT> msg, HandlerType han, NodeType node)

template<typename ObjT, typename MsgT, auto f>
decltype(auto) vt::objgroup::invoke(messaging::MsgSharedPtr<MsgT> msg, HandlerType han, NodeType node)

template<typename MsgT>
messaging::PendingSend vt::objgroup::broadcast(MsgSharedPtr<MsgT> msg, HandlerType han)

Variable documentation

static ObjGroupIDType const vt::objgroup::fst_obj_group_id constexpr