Metall  v0.29
A persistent memory allocator for data-centric analytics
metall::utility Namespace Reference

Namespace for utility items. More...

Namespaces

 filesystem
 
 mpi
 Namespace for MPI utilities.
 
 mpi_datastore
 Namespace for MPI datastore.
 
 mutex
 Namespace for mutex.
 
 omp
 Namespace for utility items for OpenMP.
 

Classes

class  container_of_containers_iterator_adaptor
 Utility class that provides an iterator for a container of containers, e.g., map of vectors This is an experimental implementation and only support forward iterator for now. More...
 
class  metall_mpi_adaptor
 A utility class for using Metall with MPI This is an experimental implementation. More...
 

Typedefs

template<typename primary_alloc >
using fallback_allocator_adaptor = metall::container::fallback_allocator_adaptor< primary_alloc >
 
template<typename T = void, unsigned int seed = 123>
using hash = metall::mtlldetail::hash< seed >
 Hash a value of type T. More...
 
template<unsigned int seed = 123>
using str_hash = metall::mtlldetail::str_hash< seed >
 Hash function for std::string-compatible string container. More...
 
using rand_512 = detail::base_rand_xoshiro< detail::xoshiro512pp >
 pseudo-random number generator that has a similar interface as the ones in STL The actual algorithm is uses xoshiro512++ whose period is 2^(512-1) More...
 
using rand_1024 = detail::base_rand_xoshiro< detail::xoshiro1024pp >
 pseudo-random number generator that has a similar interface as the ones in STL The actual algorithm is uses xoshiro1024++ whose period is 2^(1024-1) More...
 

Functions

template<typename outer_iterator_type , typename inner_iterator_type >
bool operator== (const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &lhs, const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &rhs)
 
template<typename outer_iterator_type , typename inner_iterator_type >
bool operator!= (const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &lhs, const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &rhs)
 
void ls_named_object (const std::string &datastore_path)
 
void ls_unique_object (const std::string &datastore_path)
 
void ls_anonymous_object (const std::string &datastore_path)
 

Detailed Description

Namespace for utility items.

Typedef Documentation

◆ fallback_allocator_adaptor

template<typename primary_alloc >
using metall::utility::fallback_allocator_adaptor = typedef metall::container::fallback_allocator_adaptor<primary_alloc>

◆ hash

template<typename T = void, unsigned int seed = 123>
using metall::utility::hash = typedef metall::mtlldetail::hash<seed>

Hash a value of type T.

Template Parameters
TData type to hash. If void is specified, the hash data type is determined by () operator.
seedA seed value used for hashing.

◆ str_hash

template<unsigned int seed = 123>
using metall::utility::str_hash = typedef metall::mtlldetail::str_hash<seed>

Hash function for std::string-compatible string container.

Template Parameters
seedA seed value used for hashing.

◆ rand_512

using metall::utility::rand_512 = typedef detail::base_rand_xoshiro<detail::xoshiro512pp>

pseudo-random number generator that has a similar interface as the ones in STL The actual algorithm is uses xoshiro512++ whose period is 2^(512-1)

◆ rand_1024

using metall::utility::rand_1024 = typedef detail::base_rand_xoshiro<detail::xoshiro1024pp>

pseudo-random number generator that has a similar interface as the ones in STL The actual algorithm is uses xoshiro1024++ whose period is 2^(1024-1)

Function Documentation

◆ operator==()

template<typename outer_iterator_type , typename inner_iterator_type >
bool metall::utility::operator== ( const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &  lhs,
const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &  rhs 
)
inline

◆ operator!=()

template<typename outer_iterator_type , typename inner_iterator_type >
bool metall::utility::operator!= ( const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &  lhs,
const container_of_containers_iterator_adaptor< outer_iterator_type, inner_iterator_type > &  rhs 
)
inline

◆ ls_named_object()

void metall::utility::ls_named_object ( const std::string &  datastore_path)
inline

◆ ls_unique_object()

void metall::utility::ls_unique_object ( const std::string &  datastore_path)
inline

◆ ls_anonymous_object()

void metall::utility::ls_anonymous_object ( const std::string &  datastore_path)
inline