CPPuddle
Classes | Public Member Functions | Static Public Member Functions | List of all members
cppuddle::memory_recycling::detail::buffer_interface Class Reference

Singleton interface to all buffer_managers. More...

#include <buffer_management.hpp>

Public Member Functions

 ~buffer_interface ()=default
 
 buffer_interface (buffer_interface const &other)=delete
 
buffer_interfaceoperator= (buffer_interface const &other)=delete
 
 buffer_interface (buffer_interface &&other)=delete
 
buffer_interfaceoperator= (buffer_interface &&other)=delete
 

Static Public Member Functions

template<typename T , typename Host_Allocator >
static T * get (size_t number_elements, bool manage_content_lifetime=false, std::optional< size_t > location_hint=std::nullopt, std::optional< size_t > device_id=std::nullopt)
 
template<typename T , typename Host_Allocator >
static void mark_unused (T *p, size_t number_elements, std::optional< size_t > location_hint=std::nullopt, std::optional< size_t > device_id=std::nullopt)
 
template<typename T , typename Host_Allocator >
static void register_allocator_counters_with_hpx (void)
 Register all CPPuddle counters as HPX performance counters. More...
 
static void clean_all ()
 Deallocate all buffers, no matter whether they are marked as used or not. More...
 
static void clean_unused_buffers ()
 Deallocated all currently unused buffer. More...
 
static void finalize ()
 Deallocate all buffers, no matter whether they are marked as used or not. More...
 
static void print_performance_counters ()
 

Detailed Description

Singleton interface to all buffer_managers.

Constructor & Destructor Documentation

◆ ~buffer_interface()

cppuddle::memory_recycling::detail::buffer_interface::~buffer_interface ( )
default

◆ buffer_interface() [1/2]

cppuddle::memory_recycling::detail::buffer_interface::buffer_interface ( buffer_interface const &  other)
delete

◆ buffer_interface() [2/2]

cppuddle::memory_recycling::detail::buffer_interface::buffer_interface ( buffer_interface &&  other)
delete

Member Function Documentation

◆ clean_all()

static void cppuddle::memory_recycling::detail::buffer_interface::clean_all ( )
inlinestatic

Deallocate all buffers, no matter whether they are marked as used or not.

◆ clean_unused_buffers()

static void cppuddle::memory_recycling::detail::buffer_interface::clean_unused_buffers ( )
inlinestatic

Deallocated all currently unused buffer.

◆ finalize()

static void cppuddle::memory_recycling::detail::buffer_interface::finalize ( )
inlinestatic

Deallocate all buffers, no matter whether they are marked as used or not.

◆ get()

template<typename T , typename Host_Allocator >
static T* cppuddle::memory_recycling::detail::buffer_interface::get ( size_t  number_elements,
bool  manage_content_lifetime = false,
std::optional< size_t >  location_hint = std::nullopt,
std::optional< size_t >  device_id = std::nullopt 
)
inlinestatic

Primary method to allocate a buffer with CPPuddle: Returns and allocated / buffer of the requested size - this may be a reused buffer. The method figures out the correct buffer_manager and gets such a buffer from it. Should be called from an allocator implementation, not directly

◆ mark_unused()

template<typename T , typename Host_Allocator >
static void cppuddle::memory_recycling::detail::buffer_interface::mark_unused ( T *  p,
size_t  number_elements,
std::optional< size_t >  location_hint = std::nullopt,
std::optional< size_t >  device_id = std::nullopt 
)
inlinestatic

Primary method to deallocate a buffer with CPPuddle:Marks an buffer as / unused and fit for reusage. The method figures out the correct buffer manager and marks the buffer there. Should be called from an allocator implementation, not directly

◆ operator=() [1/2]

buffer_interface& cppuddle::memory_recycling::detail::buffer_interface::operator= ( buffer_interface &&  other)
delete

◆ operator=() [2/2]

buffer_interface& cppuddle::memory_recycling::detail::buffer_interface::operator= ( buffer_interface const &  other)
delete

◆ print_performance_counters()

static void cppuddle::memory_recycling::detail::buffer_interface::print_performance_counters ( )
inlinestatic

◆ register_allocator_counters_with_hpx()

template<typename T , typename Host_Allocator >
static void cppuddle::memory_recycling::detail::buffer_interface::register_allocator_counters_with_hpx ( void  )
inlinestatic

Register all CPPuddle counters as HPX performance counters.


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