DART 6.13.2
|
Base class for std::allocator compatible allocators. More...
#include <MemoryAllocator.hpp>
Public Member Functions | |
MemoryAllocator () noexcept=default | |
Default constructor. | |
virtual | ~MemoryAllocator ()=default |
Destructor. | |
virtual const std::string & | getType () const =0 |
Returns type string. | |
virtual void * | allocate (size_t bytes) noexcept=0 |
Allocates size bytes of uninitialized storage. | |
template<typename T > | |
T * | allocateAs (size_t n=1) noexcept |
Allocates object(s) without calling the constructor. | |
virtual void | deallocate (void *pointer, size_t bytes)=0 |
Deallocates the storage referenced by the pointer p , which must be a pointer obtained by an earlier cal to allocate(). | |
template<typename T , typename... Args> | |
T * | construct (Args &&... args) noexcept |
Allocates uninitialized storage and constructs an object of type T to the allocated storage. | |
template<typename T , typename... Args> | |
T * | constructAt (void *pointer, Args &&... args) |
template<typename T , typename... Args> | |
T * | constructAt (T *pointer, Args &&... args) |
template<typename T > | |
void | destroy (T *object) noexcept |
Calls the destructor of the object and deallocate the storage. | |
virtual void | print (std::ostream &os=std::cout, int indent=0) const |
Prints state of the memory allocator. | |
bool | is () const |
Returns true if the types of this Base and the template parameter (a base class) are identical. | |
const Derived * | as () const |
Casts to pointer of Derived if Base is its base class. | |
Derived * | as () |
Casts to pointer of Derived if Base is its base class. | |
const Derived & | asRef () const |
Casts to reference of Derived if Base is its base class. UB otherwise. | |
Derived & | asRef () |
Casts to reference of Derived if Base is its base class. UB otherwise. | |
Static Public Member Functions | |
static MemoryAllocator & | GetDefault () |
Returns the default memory allocator. | |
Private Member Functions | |
const MemoryAllocator & | base () const |
Casts to Base const-reference. | |
MemoryAllocator & | base () |
Casts to Base reference. | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const MemoryAllocator &allocator) |
Prints state of the memory allocator. | |
Base class for std::allocator compatible allocators.
|
defaultnoexcept |
Default constructor.
|
virtualdefault |
Destructor.
|
pure virtualnoexcept |
Allocates size
bytes of uninitialized storage.
[in] | bytes | The byte size to allocate sotrage for. |
Implemented in dart::common::CAllocator, dart::common::FreeListAllocator, dart::common::MemoryAllocatorDebugger< T >, dart::common::MemoryAllocatorDebugger< FreeListAllocator >, dart::common::MemoryAllocatorDebugger< PoolAllocator >, and dart::common::PoolAllocator.
|
noexcept |
Allocates object(s) without calling the constructor.
This is identical to static_cast<T*>
(allocate(n * sizeof(T))).
[in] | n | The number of objects to allocate. |
|
inherited |
Casts to pointer of Derived if Base is its base class.
Returns nullptr otherwise.
|
inherited |
Casts to pointer of Derived if Base is its base class.
Returns nullptr otherwise.
|
inherited |
Casts to reference of Derived if Base is its base class. UB otherwise.
|
inherited |
Casts to reference of Derived if Base is its base class. UB otherwise.
|
privateinherited |
Casts to Base reference.
|
privateinherited |
Casts to Base const-reference.
|
noexcept |
Allocates uninitialized storage and constructs an object of type T to the allocated storage.
T | The object type to construct. |
Args... | The argument types to pass to the object constructor. |
[in] | args | The constructor arguments to use. |
T * dart::common::MemoryAllocator::constructAt | ( | T * | pointer, |
Args &&... | args | ||
) |
T * dart::common::MemoryAllocator::constructAt | ( | void * | pointer, |
Args &&... | args | ||
) |
|
pure virtual |
Deallocates the storage referenced by the pointer p
, which must be a pointer obtained by an earlier cal to allocate().
[in] | pointer | Pointer obtained from allocate(). |
[in] | bytes | The bytes of the allocated memory. |
Implemented in dart::common::CAllocator, dart::common::FreeListAllocator, dart::common::MemoryAllocatorDebugger< T >, dart::common::MemoryAllocatorDebugger< FreeListAllocator >, dart::common::MemoryAllocatorDebugger< PoolAllocator >, and dart::common::PoolAllocator.
|
noexcept |
Calls the destructor of the object and deallocate the storage.
|
static |
Returns the default memory allocator.
|
pure virtual |
|
inherited |
Returns true if the types of this Base
and the template parameter (a base class) are identical.
This function is a syntactic sugar, which is identical to: (getType() == ShapeType::getStaticType()).
Example code:
|
virtual |
Prints state of the memory allocator.
Reimplemented in dart::common::CAllocator, dart::common::FreeListAllocator, dart::common::MemoryAllocatorDebugger< T >, dart::common::MemoryAllocatorDebugger< FreeListAllocator >, dart::common::MemoryAllocatorDebugger< PoolAllocator >, and dart::common::PoolAllocator.
|
friend |
Prints state of the memory allocator.