template<typename ColT>
vt::vrt::collection::param::ConstructParams struct

fwd-declare the PO constructor

A parameter configuration object for building a collection.

Public types

using ThisType = ConstructParams<ColT>
using IndexType = typename ColT::IndexType
using ProxyType = CollectionProxy<ColT>
using ApplyFnType = std::function<void(IndexType)>
using ProxyFnType = std::function<void(ProxyType)>
using VirtualPtrType = std::unique_ptr<Indexable<IndexType>>
using ConstructFnType = std::function<VirtualPtrType(IndexType)>
using ListInsertType = std::function<void(ApplyFnType)>
using ListInsertElmType = std::tuple<IndexType, std::unique_ptr<ColT>>

Constructors, destructors, conversion operators

ConstructParams() defaulted
ConstructParams(ConstructParams&&) defaulted
ConstructParams(ConstructParams const& x)
~ConstructParams()

Public functions

auto bounds(IndexType in_bounds) -> ThisType&&
Specify the bounds for the collection. If it doesn't have dynamic membership this whole range will be constructed.
auto migratable(bool is_migratable) -> ThisType&&
Whether this is collection is migratable.
auto mapperFunc() -> ThisType&&
Explicitly specify and register a map for the collection.
auto mapperHandler(HandlerType in_map_han) -> ThisType&&
Explicitly specify and register a map for the collection.
template<typename ProxyT, typename ObjGroupT = typename ProxyT::ObjGroupType, typename IndexT = typename ObjGroupT::BaseIndexType>
auto mapperObjGroup(ProxyT proxy, std::enable_if_t<std::is_convertible<ObjGroupT*, mapping::BaseMapper<IndexT>*>::value>* = nullptr) -> ThisType&&
Explicitly specify an existing objgroup for the mapper.
template<typename T, typename... Args>
auto mapperObjGroupConstruct(Args && ... args) -> ThisType&&
Specify a objgroup type for the mapper to construct and then use for the mapping.
auto elementConstructor(ConstructFnType in_cons_fn) -> ThisType&&
Specify a non-default constructor for each element.
auto dynamicMembership(bool is_dynamic_membership) -> ThisType&&
Specify whether the collection has dynamic membership.
auto bulkInsert(IndexType in_bulk_range) -> ThisType&&
Bulk insert a range for the collection.
auto bulkInsert() -> ThisType&&
Bulk insert the entire bounds of a collection.
template<typename Iter>
auto listInsert(Iter begin, Iter end) -> ThisType&&
Insert a list of elements.
template<typename Container>
auto listInsert(Container const& c) -> ThisType&&
Insert a list of elements.
template<typename Container>
auto listInsertHere(Container&& c) -> ThisType&&
Insert a list of elements here (on this node)
template<typename Iter>
auto listInsertHere(Iter begin, Iter end) -> ThisType&&
Insert a list of elements here (on this node)
auto deferWithEpoch(ProxyFnType cb) -> EpochType
Construct and return an epoch to wait on for construction to finish.
auto wait() -> ProxyType
Wait for construction to complete and then return the proxy.
auto collective(bool is_collective) -> ThisType&&
Specify whether this is a collective construction of the collection.
template<typename SerializerT>
void serialize(SerializerT& s)

Public variables

friend CollectionManager

Friends

auto makeCollectionImpl(std::string const&, bool const) -> ThisType
fwd-declare the builder helper function

Function documentation

template<typename ColT>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::bounds(IndexType in_bounds)

Specify the bounds for the collection. If it doesn't have dynamic membership this whole range will be constructed.

Parameters
in_bounds in the collection bounds

template<typename ColT>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::migratable(bool is_migratable)

Whether this is collection is migratable.

Parameters
is_migratable in is migratable?

template<typename ColT> template<typename ProxyT, typename ObjGroupT = typename ProxyT::ObjGroupType, typename IndexT = typename ObjGroupT::BaseIndexType>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::mapperObjGroup(ProxyT proxy, std::enable_if_t<std::is_convertible<ObjGroupT*, mapping::BaseMapper<IndexT>*>::value>* = nullptr)

Explicitly specify an existing objgroup for the mapper.

Parameters
proxy in the typed objgroup proxy of the mapper

template<typename ColT> template<typename T, typename... Args>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::mapperObjGroupConstruct(Args && ... args)

Specify a objgroup type for the mapper to construct and then use for the mapping.

template<typename ColT>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::elementConstructor(ConstructFnType in_cons_fn)

Specify a non-default constructor for each element.

Parameters
in_cons_fn in the construction function

template<typename ColT>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::dynamicMembership(bool is_dynamic_membership)

Specify whether the collection has dynamic membership.

Parameters
is_dynamic_membership in dynamic membership?

template<typename ColT>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::bulkInsert(IndexType in_bulk_range)

Bulk insert a range for the collection.

Parameters
in_bulk_range in the bulk insertion range

template<typename ColT> template<typename Iter>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::listInsert(Iter begin, Iter end)

Insert a list of elements.

Parameters
begin in begin iterator
end in end iterator

template<typename ColT> template<typename Container>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::listInsert(Container const& c)

Insert a list of elements.

Parameters
in the iterable container of elements to insert

template<typename ColT> template<typename Container>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::listInsertHere(Container&& c)

Insert a list of elements here (on this node)

Parameters
in the iterable container of elements to insert

template<typename ColT> template<typename Iter>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::listInsertHere(Iter begin, Iter end)

Insert a list of elements here (on this node)

template<typename ColT>
EpochType vt::vrt::collection::param::ConstructParams<ColT>::deferWithEpoch(ProxyFnType cb)

Construct and return an epoch to wait on for construction to finish.

Parameters
cb in callback with the proxy once the collection's construction is complete
Returns the epoch to wait on

template<typename ColT>
ProxyType vt::vrt::collection::param::ConstructParams<ColT>::wait()

Wait for construction to complete and then return the proxy.

Returns the proxy after the construction is complete

template<typename ColT>
ThisType&& vt::vrt::collection::param::ConstructParams<ColT>::collective(bool is_collective)

Specify whether this is a collective construction of the collection.

Parameters
is_collective in is collective?