RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Classes | Public Types | Public Member Functions | List of all members
RAJA::basic_mempool::detail::MemoryArena Class Reference

MemoryArena is a map based subclass for class MemPool provides book-keeping to divy a large chunk of pre-allocated memory to avoid the overhead of malloc/free or cudaMalloc/cudaFree, etc. More...

#include <basic_mempool.hpp>

Public Types

using free_type = std::map< void *, void * >
 
using free_value_type = typename free_type::value_type
 
using used_type = std::map< void *, void * >
 
using used_value_type = typename used_type::value_type
 

Public Member Functions

 MemoryArena (void *ptr, size_t size)
 
 MemoryArena (MemoryArena const &)=delete
 
MemoryArenaoperator= (MemoryArena const &)=delete
 
 MemoryArena (MemoryArena &&)=default
 
MemoryArenaoperator= (MemoryArena &&)=default
 
size_t capacity ()
 
bool unused ()
 
void * get_allocation ()
 
void * get (size_t nbytes, size_t alignment)
 
bool give (void *ptr)
 

Detailed Description

MemoryArena is a map based subclass for class MemPool provides book-keeping to divy a large chunk of pre-allocated memory to avoid the overhead of malloc/free or cudaMalloc/cudaFree, etc.

get/give are the primary calls used by class MemPool to get aligned memory from the pool or give it back

Member Typedef Documentation

◆ free_type

◆ free_value_type

using RAJA::basic_mempool::detail::MemoryArena::free_value_type = typename free_type::value_type

◆ used_type

◆ used_value_type

using RAJA::basic_mempool::detail::MemoryArena::used_value_type = typename used_type::value_type

Constructor & Destructor Documentation

◆ MemoryArena() [1/3]

RAJA::basic_mempool::detail::MemoryArena::MemoryArena ( void *  ptr,
size_t  size 
)
inline

◆ MemoryArena() [2/3]

RAJA::basic_mempool::detail::MemoryArena::MemoryArena ( MemoryArena const &  )
delete

◆ MemoryArena() [3/3]

RAJA::basic_mempool::detail::MemoryArena::MemoryArena ( MemoryArena &&  )
default

Member Function Documentation

◆ operator=() [1/2]

MemoryArena& RAJA::basic_mempool::detail::MemoryArena::operator= ( MemoryArena const &  )
delete

◆ operator=() [2/2]

MemoryArena& RAJA::basic_mempool::detail::MemoryArena::operator= ( MemoryArena &&  )
default

◆ capacity()

size_t RAJA::basic_mempool::detail::MemoryArena::capacity ( )
inline

◆ unused()

bool RAJA::basic_mempool::detail::MemoryArena::unused ( )
inline

◆ get_allocation()

void* RAJA::basic_mempool::detail::MemoryArena::get_allocation ( )
inline

◆ get()

void* RAJA::basic_mempool::detail::MemoryArena::get ( size_t  nbytes,
size_t  alignment 
)
inline

◆ give()

bool RAJA::basic_mempool::detail::MemoryArena::give ( void *  ptr)
inline

The documentation for this class was generated from the following file: