vecmem 1.18.0
Loading...
Searching...
No Matches
Public Member Functions | List of all members
vecmem::choice_memory_resource Class Referencefinal

This memory resource conditionally allocates memory. More...

#include <vecmem/memory/choice_memory_resource.hpp>

Inheritance diagram for vecmem::choice_memory_resource:
vecmem::details::memory_resource_base

Public Member Functions

VECMEM_CORE_EXPORT choice_memory_resource (std::function< memory_resource &(std::size_t, std::size_t)> decision)
 Construct the choice memory resource.
 
VECMEM_CORE_EXPORT choice_memory_resource (choice_memory_resource &&parent) noexcept
 Move constructor.
 
 choice_memory_resource (const choice_memory_resource &)=delete
 Disallow copying the memory resource.
 
VECMEM_CORE_EXPORT ~choice_memory_resource () override
 Destructor.
 
VECMEM_CORE_EXPORT choice_memory_resourceoperator= (choice_memory_resource &&rhs) noexcept
 Move assignment operator.
 
choice_memory_resourceoperator= (const choice_memory_resource &)=delete
 Disallow copying the memory resource.
 

Protected Member Functions

Function(s) implementing @c vecmem::memory_resource
VECMEM_CORE_EXPORT bool do_is_equal (const memory_resource &other) const noexcept override
 Compare the equality of *this memory resource with another.
 

Private Member Functions

Function(s) implementing @c vecmem::memory_resource
VECMEM_CORE_EXPORT voiddo_allocate (std::size_t, std::size_t) override
 Allocate memory with one of the underlying resources.
 
VECMEM_CORE_EXPORT void do_deallocate (void *p, std::size_t, std::size_t) override
 De-allocate a previously allocated memory block.
 

Detailed Description

This memory resource conditionally allocates memory.

It is constructed with a function that determines which upstream resource to use.

This resource can be used to construct complex conditional allocation schemes.

Constructor & Destructor Documentation

◆ choice_memory_resource()

vecmem::choice_memory_resource::choice_memory_resource ( std::function< memory_resource &(std::size_t, std::size_t)>  decision)
explicit

Construct the choice memory resource.

Parameters
[in]upstreamsThe upstream memory resources to use.
[in]decisionThe function which picks the upstream memory resource to use by index.

Member Function Documentation

◆ do_is_equal()

bool vecmem::details::memory_resource_base::do_is_equal ( const memory_resource &  other) const
overrideprotectednoexceptinherited

Compare the equality of *this memory resource with another.

Parameters
otherThe other memory resource to compare with
Returns
true if the two memory resources are equal, false otherwise

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