vt::location::LocationManager struct

A core VT component that manages instances of location managers for specific virtual entity instances across a distributed machine.

Tracks multiple instances of EntityLocationCoord which is the actual manager for a common instance of distributed entities (like a collection that is spread out across nodes). The LocationManager manages those instances based on instance identifiers with a consistent mapping across the distributed system.

The location manager creates these coordinators on demand, because messages might arrive out-of-order wrt the construction of the location coordinator.

Base classes

template<typename T>
struct vt::runtime::component::Component<LocationManager>
Component class for a generic VT runtime module, CRTP'ed over the component's actual type

Public types

template<typename LocType>
using PtrType = LocType*
using LocCoordPtrType = LocationCoord*
using LocInstContainerType = std::unordered_map<LocInstType, LocCoordPtrType>
using VrtLocType = EntityLocationCoord<int32_t>
using VrtLocProxyType = EntityLocationCoord<VirtualProxyType>
template<typename IndexT>
using IndexedElmType = EntityLocationCoord<IndexT>
template<typename IndexT>
using CollectionLocType = PtrType<IndexT>
using CollectionContainerType = std::unordered_map<VirtualProxyType, ObjGroupProxyType>

Constructors, destructors, conversion operators

LocationManager() defaulted
System call to construct a location manager.
~LocationManager() virtual

Public functions

auto name() -> std::string override
Get the name of the component.
void initialize() override
Empty default overridden initialize method.
template<typename IndexT>
auto makeCollectionLM(VirtualProxyType proxy) -> objgroup::proxy::Proxy<IndexedElmType<IndexT>>
Make a new location coordinator for a collection.
template<typename IndexT>
auto getCollectionLM(VirtualProxyType proxy) -> IndexedElmType<IndexT>*
Get the new location coordinator for a collection.
template<typename IndexT>
void destroyCollectionLM(VirtualProxyType proxy)
Destroy a location manager.
template<typename SerializerT>
void serialize(SerializerT& s)

Public variables

PtrType<VrtLocType> virtual_loc
PtrType<VrtLocProxyType> vrtContextLoc

Function documentation

template<typename IndexT>
objgroup::proxy::Proxy<IndexedElmType<IndexT>> vt::location::LocationManager::makeCollectionLM(VirtualProxyType proxy)

Make a new location coordinator for a collection.

Parameters
proxy in the collection proxy bits
Returns proxy to location manager

template<typename IndexT>
IndexedElmType<IndexT>* vt::location::LocationManager::getCollectionLM(VirtualProxyType proxy)

Get the new location coordinator for a collection.

Parameters
proxy in the collection proxy bits
Returns the location manager

template<typename IndexT>
void vt::location::LocationManager::destroyCollectionLM(VirtualProxyType proxy)

Destroy a location manager.

Parameters
proxy in the collection proxy bits