template<typename T, HandleEnum E, typename IndexT>
vt::rdma::SubHandle struct

Public types

using HandleType = Handle<T, vt::rdma::HandleEnum::StaticSize, IndexT>
using ProxyType = vt::objgroup::proxy::Proxy<SubHandle<T, E, IndexT>>

Public static functions

static void destroyCollective(ProxyType proxy)
template<mapping::ActiveMapTypedFnType<IndexT> map_fn>
static auto construct(bool in_is_migratable, IndexT in_range, bool in_dense_start_with_zero) -> ProxyType
static auto construct(bool in_is_migratable, IndexT in_range, bool in_dense_start_with_zero, vt::HandlerType map) -> ProxyType

Constructors, destructors, conversion operators

SubHandle() defaulted

Public functions

void initialize(ProxyType in_proxy, bool in_is_migratable, IndexT in_range, vt::HandlerType map_han, bool in_dense_start_with_zero)
void makeSubHandles(bool initial = true)
auto linearize(IndexT idx) -> IndexT::DenseIndexType
auto getHomeNode(IndexT const& idx) -> NodeType
auto fetchInfo(IndexT const& idx) -> IndexInfo
void updateInfo(IndexT const& idx, IndexInfo info, NodeType home)
auto resolveLocation(IndexT const& idx) -> IndexInfo
void get(IndexT const& idx, Lock l, T* ptr, uint64_t len, int offset)
auto getCount(IndexT const& idx, Lock l = Lock::Shared) -> std::size_t
auto rget(IndexT const& idx, Lock l, T* ptr, uint64_t len, int offset) -> RequestHolder
auto rput(IndexT const& idx, Lock l, T* ptr, uint64_t len, int offset) -> RequestHolder
void put(IndexT const& idx, Lock l, T* ptr, uint64_t len, int offset)
auto raccum(IndexT const& idx, Lock l, T* ptr, uint64_t len, int offset, MPI_Op op) -> RequestHolder
void accum(IndexT const& idx, Lock l, T* ptr, uint64_t len, int offset, MPI_Op op)
auto fetchOp(IndexT const& idx, Lock l, T ptr, int offset, MPI_Op op) -> T
auto isUniform() const -> bool
template<typename Callable>
void access(IndexT idx, Lock l, Callable fn, uint64_t offset)
auto addLocalIndex(IndexT index, uint64_t count) -> Handle<T, E, IndexT>
auto getOrderedOffset(IndexT idx, NodeType home_node) -> int
void stageLocalIndex(IndexT index, uint64_t count)
void migratedOutIndex(IndexT index)
void migratedInIndex(IndexT index)
void afterLB()
void checkChanged(impl::ReduceLBMsg* msg)
auto ready() const -> bool
auto totalLocalCount() const -> uint64_t
auto getNumHandles() const -> std::size_t
auto getNumActiveHandles() const -> std::size_t
void deleteHandle()
auto getNumDeletedHandles() const -> std::size_t
auto getCollectionExpected() const -> std::size_t
void setCollectionExpected(std::size_t count)
void destroy()

Protected variables

ProxyType proxy_
bool is_migratable_
vt::HandlerType map_han_
IndexT range_
std::unordered_map<IndexT, SubInfo> sub_handles_
std::unordered_map<IndexT, std::size_t> sub_handles_staged_
std::vector<IndexT> sub_layout_
std::vector<uint64_t> sub_prefix_
Handle<T, E> data_handle_
Handle<uint64_t, E> loc_handle_
Cache<IndexT> cache_
bool ready_
bool mpi2_
bool uniform_size_
std::size_t count_if_uniform_
std::size_t collection_expected_count_
std::vector<IndexT> migrate_out_
std::vector<IndexT> migrate_in_
bool ordered_opt_
std::unordered_map<IndexT, int> ordered_local_offset_
bool dense_start_with_zero_
std::size_t deleted_count_