Template Class DefaultMemoryResource

Inheritance Relationships

Base Types

Class Documentation

template <typename _allocator>
class DefaultMemoryResource : public umpire::resource::MemoryResource, umpire::strategy::mixins::Inspector

Concrete MemoryResource object that uses the template _allocator to allocate and deallocate memory.

Public Functions

DefaultMemoryResource(Platform platform, const std::string &name, int id, MemoryResourceTraits traits)
void *allocate(size_t bytes)

Allocate bytes of memory.

This function is pure virtual and must be implemented by the inheriting class.

Return
Pointer to start of allocation.
Parameters
  • bytes: Number of bytes to allocate.

void deallocate(void *ptr)

Free the memory at ptr.

This function is pure virtual and must be implemented by the inheriting class.

Parameters
  • ptr: Pointer to free.

long getCurrentSize() const

Return the current size of this MemoryResource.

This is sum of the sizes of all the tracked allocations. Note that this doesn’t ever have to be equal to getHighWatermark.

Return
current total size of active allocations in this MemoryResource.

long getHighWatermark() const

Return the memory high watermark for this MemoryResource.

This is the largest amount of memory allocated by this Allocator. Note that this may be larger than the largest value returned by getCurrentSize.

Return
Memory high watermark.

Platform getPlatform()

Get the Platform assocatiated with this MemoryResource.

This function is pure virtual and must be implemented by the inheriting class.

Return
Platform associated with this MemoryResource.

MemoryResourceTraits getTraits()
void release()

Release any and all unused memory held by this AllocationStrategy.

long getActualSize() const

Get the current amount of memory allocated by this allocator.

Note that this can be larger than getCurrentSize(), particularly if the AllocationStrategy implements some kind of pooling.

Return
The total size of all the memory this object has allocated.

std::string getName()

Get the name of this AllocationStrategy.

Return
The name of this AllocationStrategy.

int getId()

Get the id of this AllocationStrategy.

Return
The id of this AllocationStrategy.

Protected Attributes

_allocator m_allocator
Platform m_platform
MemoryResourceTraits m_traits
std::string m_name
int m_id

Private Functions

void registerAllocation(void *ptr, size_t size, std::shared_ptr<umpire::strategy::AllocationStrategy> strategy)
void deregisterAllocation(void *ptr)

Private Members

long m_current_size
long m_high_watermark