CPPuddle
Loading...
Searching...
No Matches
recycler::detail::buffer_interface Class Reference

Singleton interface to all buffer_managers. More...

#include <buffer_management.hpp>

Public Member Functions

 buffer_interface (buffer_interface const &other)=delete
 buffer_interface (buffer_interface &&other)=delete
 ~buffer_interface ()=default
buffer_interface & operator= (buffer_interface const &other)=delete
buffer_interface & operator= (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.
static void clean_all ()
 Deallocate all buffers, no matter whether they are marked as used or not.
static void clean_unused_buffers ()
 Deallocated all currently unused buffer.
static void finalize ()
 Deallocate all buffers, no matter whether they are marked as used or not.
static void print_performance_counters ()

Detailed Description

Singleton interface to all buffer_managers.

Constructor & Destructor Documentation

◆ 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

◆ ~buffer_interface()

Member Function Documentation

◆ clean_all()

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

◆ clean_unused_buffers()

Deallocated all currently unused buffer.

◆ finalize()

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

◆ get()

template<typename T, typename Host_Allocator>
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>
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()

◆ register_allocator_counters_with_hpx()

template<typename T, typename Host_Allocator>
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: