TPIE

2362a60
memory.h File Reference

Memory management subsystem. More...

#include <tpie/config.h>
#include <tpie/util.h>
#include <tpie/resource_manager.h>
#include <tpie/pretty_print.h>
#include <mutex>
#include <unordered_map>
#include <type_traits>
#include <utility>
#include <memory>
#include <atomic>

Go to the source code of this file.

Classes

class  tpie::memory_manager
 Memory management object used to track memory usage. More...
 
struct  tpie::array_allocation_scope_magic< T >
 
struct  tpie::allocation_scope_magic< T >
 
struct  tpie::tpie_deleter
 
class  tpie::memory_bucket
 Bucket used for memory counting. More...
 
class  tpie::memory_bucket_ref
 Class storring a reference to a memory bucket. More...
 
class  tpie::allocator< T >
 A allocator object usable in STL containers, using the TPIE memory manager. More...
 
struct  tpie::allocator< T >::rebind< U >
 

Namespaces

 tpie
 pipelining/factory_base.h Base class of pipelining factories
 

Typedefs

template<typename T >
using tpie::unique_ptr = std::unique_ptr< T, tpie_deleter >
 like std::unique_ptr, but delete the object with tpie_delete. More...
 

Functions

void tpie::init_memory_manager ()
 Used by tpie_init to initialize the memory manager. More...
 
void tpie::finish_memory_manager ()
 Used by tpie_finish to deinitialize the memory manager. More...
 
memory_manager & tpie::get_memory_manager ()
 Return a reference to the memory manager. More...
 
void tpie::__register_pointer (void *p, size_t size, const std::type_info &t)
 
void tpie::__unregister_pointer (void *p, size_t size, const std::type_info &t)
 
void tpie::assert_tpie_ptr (void *p)
 In a debug build, assert that a given pointer has been allocated with tpie_new. More...
 
template<typename D , typename T >
tpie::ptr_cast (T *t)
 Cast between pointer types. More...
 
template<typename T >
T * tpie::__allocate ()
 
template<typename T >
size_t tpie::tpie_size (T *p)
 
template<typename T >
T * tpie::tpie_new_array (size_t size)
 Allocate a new array and register its memory usage. More...
 
template<typename T , typename... Args>
T * tpie::tpie_new (Args &&...args)
 Allocate an element of the type given as template parameter, and register its memory usage with TPIE. More...
 
template<typename T >
void tpie::tpie_delete (T *p) throw ()
 Delete an object allocated with tpie_new. More...
 
template<typename T >
void tpie::tpie_delete_array (T *a, size_t size) throw ()
 Delete an array allocated with tpie_new_array. More...
 
template<typename T , typename... TT>
unique_ptr< T > tpie::make_unique (TT &&...tt)
 Create a new unique object using tpie::new. More...
 
size_t tpie::consecutive_memory_available (size_t granularity=5 *1024 *1024)
 Find the largest amount of memory that can be allocated as a single chunk. More...
 

Detailed Description

Memory management subsystem.

Definition in file memory.h.