Bond 0.9
C++ Bond Runtime Library API Documentation
Loading...
Searching...
No Matches
Bond::DefaultAllocator Class Reference

A simple implementation of Allocator that allocates and frees memory using the new and delete operators and also tracks the number of outstanding allocations. More...

#include <bond/systems/defaultallocator.h>

Inheritance diagram for Bond::DefaultAllocator:
Bond::Allocator

Public Member Functions

 DefaultAllocator ()
 Constructs a DefaultAllocator object with no outstanding allocations.
virtual ~DefaultAllocator ()
 Destroys the DefaultAllocator. Outstanding allocations are not freed.
virtual void * Allocate (size_t size) override
 Allocates a block of memory of the given size with the new operator.
virtual void * AllocateAligned (size_t size, size_t align) override
 Allocates a block of memory with the given size and alignment with the new operator.
virtual void Free (void *buffer) override
 Frees memory allocated by Allocate with the delete operator.
virtual void FreeAligned (void *buffer) override
 Frees memory allocated by AllocateAligned with the delete operator.
int GetNumAllocations () const
 Returns the number of outstanding allocations.
Public Member Functions inherited from Bond::Allocator
virtual ~Allocator ()
 Destroys the Allocator.
void Free (const void *buffer)
 Calls the non-const form of Free after casting away the constness of the given pointer.
void FreeAligned (const void *buffer)
 Calls the non-const form of FreeAligned after casting away the constness of the given pointer.
template<typename T>
T * Alloc ()
 Allocates and returns a pointer to a block of uninitialized memory large enough to accommodate an object of type T.
template<typename T>
T * Alloc (size_t numElements)
 Allocates and returns a pointer to a block of uninitialized memory large enough to accommodate an array of objects of type T.
template<typename T>
Handle< T > AllocOwned ()
 Allocates and returns an owning handle to a block of uninitialized memory large enough to accommodate an object of type T.
template<typename T>
Handle< T > AllocOwned (size_t numElements)
 Allocates and returns an owning handle to a block of uninitialized memory large enough to accommodate an array of objects of type T.
template<typename T>
T * AllocAligned (size_t align)
 Allocates and returns a pointer to a block of uninitialized aligned memory large enough to accommodate an object of type T.
template<typename T>
T * AllocAligned (size_t numElements, size_t align)
 Allocates and returns a pointer to a block of uninitialized aligned memory large enough to accommodate an array of objects of type T.
template<typename T>
AlignedHandle< T > AllocOwnedAligned (size_t align)
 Allocates and returns an owning handle to a block of uninitialized aligned memory large enough to accommodate an object of type T.
template<typename T>
AlignedHandle< T > AllocOwnedAligned (size_t numElements, size_t align)
 Allocates and returns an owning handle to a block of uninitialized aligned memory large enough to accommodate an array of objects of type T.
template<typename T, typename... Args>
T * AllocObject (Args &&... args)
 Allocates, constructs and returns a pointer to an instance of type T.
template<typename T, typename... Args>
ObjectHandle< T > AllocOwnedObject (Args &&... args)
 Allocates, constructs and returns an owning handle to an instance of type T.
template<typename T, typename... Args>
T * AllocAlignedObject (size_t align, Args &&... args)
 Allocates, constructs and returns a pointer to an aligned instance of type T.
template<typename T, typename... Args>
AlignedObjectHandle< T > AllocOwnedAlignedObject (size_t align, Args &&... args)
 Allocates, constructs and returns an owning handle to an aligned instance of type T.

Detailed Description

A simple implementation of Allocator that allocates and frees memory using the new and delete operators and also tracks the number of outstanding allocations.

Allocation failures are reported by throwing std::bad_alloc.

Constructor & Destructor Documentation

◆ DefaultAllocator()

Bond::DefaultAllocator::DefaultAllocator ( )
inline

Constructs a DefaultAllocator object with no outstanding allocations.

◆ ~DefaultAllocator()

virtual Bond::DefaultAllocator::~DefaultAllocator ( )
inlinevirtual

Destroys the DefaultAllocator. Outstanding allocations are not freed.

Member Function Documentation

◆ Allocate()

virtual void * Bond::DefaultAllocator::Allocate ( size_t size)
inlineoverridevirtual

Allocates a block of memory of the given size with the new operator.

Parameters
sizeThe size of the block in bytes.

Implements Bond::Allocator.

◆ AllocateAligned()

virtual void * Bond::DefaultAllocator::AllocateAligned ( size_t size,
size_t align )
overridevirtual

Allocates a block of memory with the given size and alignment with the new operator.

Parameters
sizeThe size of the block in bytes.
alignThe alignment of the block in bytes. It is rounded up to a power of two that is at least the size of a pointer.

Implements Bond::Allocator.

◆ Free()

virtual void Bond::DefaultAllocator::Free ( void * buffer)
inlineoverridevirtual

Frees memory allocated by Allocate with the delete operator.

Parameters
bufferPointer to the memory to be freed, or null.

Implements Bond::Allocator.

◆ FreeAligned()

virtual void Bond::DefaultAllocator::FreeAligned ( void * buffer)
overridevirtual

Frees memory allocated by AllocateAligned with the delete operator.

Parameters
bufferPointer to the memory to be freed, or null.

Implements Bond::Allocator.

◆ GetNumAllocations()

int Bond::DefaultAllocator::GetNumAllocations ( ) const
inline

Returns the number of outstanding allocations.


The documentation for this class was generated from the following file:
  • include/bond/systems/defaultallocator.h