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 = std::unique_ptr<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 LocErasureType = LocationCoord
using LocDeleterType = std::function<void(LocErasureType*)>
using CollectionLocErasedType = std::unique_ptr<LocErasureType, LocDeleterType>
using CollectionContainerType = std::unordered_map<VirtualProxyType, CollectionLocErasedType>
template<typename LocType>
using ActionLocInstType = std::function<void(LocType*)>
template<typename LocType>
using PendingContainerType = std::vector<ActionLocInstType<LocType>>

Public static variables

static LocInstType cur_loc_inst
Next instance identifier.

Public static functions

template<typename LocType>
static void insertInstance(LocInstType const i, LocType* ptr)
Insert a new coordinator instance.
static auto getInstance(LocInstType const inst) -> LocCoordPtrType
Get a coordinator instance.
template<typename LocType>
static void applyInstance(LocInstType const inst, ActionLocInstType<LocType> action)
Perform an action on a coordinator.

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.
template<typename IndexT>
auto getCollectionLM(VirtualProxyType const& proxy) -> IndexedElmType<IndexT>*
Get the location coordinator for a collection.
template<typename IndexT>
void insertCollectionLM(VirtualProxyType const& proxy)
Insert a new location coordinator for a collection.
template<typename SerializerT>
void serialize(SerializerT& s)

Public variables

PtrType<VrtLocType> virtual_loc
PtrType<VrtLocProxyType> vrtContextLoc

Protected variables

CollectionContainerType collectionLoc

Function documentation

template<typename LocType>
static void vt::location::LocationManager::insertInstance(LocInstType const i, LocType* ptr)

Insert a new coordinator instance.

Parameters
in the instance ID
ptr in pointer to the coordinator

static LocCoordPtrType vt::location::LocationManager::getInstance(LocInstType const inst)

Get a coordinator instance.

Parameters
inst in the instance ID
Returns the location coordinator

template<typename LocType>
static void vt::location::LocationManager::applyInstance(LocInstType const inst, ActionLocInstType<LocType> action)

Perform an action on a coordinator.

Parameters
inst in the instance ID
action in action to perform

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

Get the location coordinator for a collection.

Parameters
proxy in the collection proxy bits
Returns pointer to the coordinator, typed on the collection/index

template<typename IndexT>
void vt::location::LocationManager::insertCollectionLM(VirtualProxyType const& proxy)

Insert a new location coordinator for a collection.

Parameters
proxy in the collection proxy bits