AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
memory_management.hpp File Reference
#include "axom/config.hpp"
#include "axom/core/Macros.hpp"
#include <cstring>
#include <cstdlib>

Namespaces

 axom
 
 axom::detail
 

Enumerations

enum class  axom::MemorySpace { axom::Dynamic }
 Memory spaces supported by Array-like types. More...
 

Functions

template<MemorySpace SPACE>
int axom::detail::getAllocatorID ()
 Translates between the MemorySpace enum and Umpire allocator IDs. More...
 
template<>
int axom::detail::getAllocatorID< MemorySpace::Dynamic > ()
 
MemorySpace axom::detail::getAllocatorSpace (int allocatorId)
 
Memory Management Routines
void axom::setDefaultAllocator (int allocId)
 Sets the default memory allocator to use. More...
 
int axom::getDefaultAllocatorID ()
 Returns the ID of the current default allocator. More...
 
template<typename T >
T * axom::allocate (std::size_t n, int allocID=getDefaultAllocatorID()) noexcept
 Allocates a chunk of memory of type T. More...
 
template<typename T >
void axom::deallocate (T *&p) noexcept
 Frees the chunk of memory pointed to by the supplied pointer, p. More...
 
template<typename T >
T * axom::reallocate (T *p, std::size_t n, int allocID=getDefaultAllocatorID()) noexcept
 Reallocates the chunk of memory pointed to by the supplied pointer. More...
 
void axom::copy (void *dst, const void *src, std::size_t numbytes) noexcept
 Copies memory from the source to the destination. More...
 

Variables

constexpr int axom::INVALID_ALLOCATOR_ID = -1