DART 6.13.2
Loading...
Searching...
No Matches
dart::common::CAllocator Class Reference

A stateless memory allocator (in release mode) that uses std::malloc and std::free for memory allocation and deallocation. More...

#include <CAllocator.hpp>

Inheritance diagram for dart::common::CAllocator:
dart::common::MemoryAllocator dart::common::Castable< MemoryAllocator >

Public Member Functions

 CAllocator () noexcept
 Constructor.
 
 ~CAllocator () override
 Destructor.
 
const std::string & getType () const override
 Returns type string.
 
void _ANONYMOUS_FUNCTION_1 ()
 
void * allocate (size_t bytes) noexcept override
 Allocates size bytes of uninitialized storage.
 
void deallocate (void *pointer, size_t bytes) override
 Deallocates the storage referenced by the pointer p, which must be a pointer obtained by an earlier cal to allocate().
 
void print (std::ostream &os=std::cout, int indent=0) const override
 Prints state of the memory allocator.
 
template<typename T >
T * allocateAs (size_t n=1) noexcept
 Allocates object(s) without calling the constructor.
 
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.
 
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 const std::string & getStaticType ()
 Returns type string.
 
static MemoryAllocatorGetDefault ()
 Returns the default memory allocator.
 

Private Member Functions

const MemoryAllocatorbase () const
 Casts to Base const-reference.
 
MemoryAllocatorbase ()
 Casts to Base reference.
 

Detailed Description

A stateless memory allocator (in release mode) that uses std::malloc and std::free for memory allocation and deallocation.

Constructor & Destructor Documentation

◆ CAllocator()

dart::common::CAllocator::CAllocator ( )
noexcept

Constructor.

◆ ~CAllocator()

dart::common::CAllocator::~CAllocator ( )
override

Destructor.

Member Function Documentation

◆ _ANONYMOUS_FUNCTION_1()

void dart::common::CAllocator::_ANONYMOUS_FUNCTION_1 ( )

◆ allocate()

void * dart::common::CAllocator::allocate ( size_t  bytes)
overridevirtualnoexcept

Allocates size bytes of uninitialized storage.

Parameters
[in]bytesThe byte size to allocate sotrage for.
Returns
On success, the pointer to the beginning of newly allocated memory.
On failure, a null pointer

Implements dart::common::MemoryAllocator.

◆ allocateAs()

template<typename T >
T * dart::common::MemoryAllocator::allocateAs ( size_t  n = 1)
noexceptinherited

Allocates object(s) without calling the constructor.

This is identical to static_cast<T*>(allocate(n * sizeof(T))).

Parameters
[in]nThe number of objects to allocate.

◆ as() [1/2]

Derived * dart::common::Castable< MemoryAllocator >::as ( )
inherited

Casts to pointer of Derived if Base is its base class.

Returns nullptr otherwise.

◆ as() [2/2]

const Derived * dart::common::Castable< MemoryAllocator >::as ( ) const
inherited

Casts to pointer of Derived if Base is its base class.

Returns nullptr otherwise.

◆ asRef() [1/2]

Derived & dart::common::Castable< MemoryAllocator >::asRef ( )
inherited

Casts to reference of Derived if Base is its base class. UB otherwise.

◆ asRef() [2/2]

const Derived & dart::common::Castable< MemoryAllocator >::asRef ( ) const
inherited

Casts to reference of Derived if Base is its base class. UB otherwise.

◆ base() [1/2]

MemoryAllocator & dart::common::Castable< MemoryAllocator >::base ( )
privateinherited

Casts to Base reference.

◆ base() [2/2]

const MemoryAllocator & dart::common::Castable< MemoryAllocator >::base ( ) const
privateinherited

Casts to Base const-reference.

◆ construct()

template<typename T , typename... Args>
T * dart::common::MemoryAllocator::construct ( Args &&...  args)
noexceptinherited

Allocates uninitialized storage and constructs an object of type T to the allocated storage.

Template Parameters
TThe object type to construct.
Args...The argument types to pass to the object constructor.
Parameters
[in]argsThe constructor arguments to use.

◆ constructAt() [1/2]

template<typename T , typename... Args>
T * dart::common::MemoryAllocator::constructAt ( T *  pointer,
Args &&...  args 
)
inherited

◆ constructAt() [2/2]

template<typename T , typename... Args>
T * dart::common::MemoryAllocator::constructAt ( void *  pointer,
Args &&...  args 
)
inherited

◆ deallocate()

void dart::common::CAllocator::deallocate ( void *  pointer,
size_t  bytes 
)
overridevirtual

Deallocates the storage referenced by the pointer p, which must be a pointer obtained by an earlier cal to allocate().

Parameters
[in]pointerPointer obtained from allocate().
[in]bytesThe bytes of the allocated memory.

Implements dart::common::MemoryAllocator.

◆ destroy()

template<typename T >
void dart::common::MemoryAllocator::destroy ( T *  object)
noexceptinherited

Calls the destructor of the object and deallocate the storage.

◆ GetDefault()

MemoryAllocator & dart::common::MemoryAllocator::GetDefault ( )
staticinherited

Returns the default memory allocator.

◆ getStaticType()

static const std::string & dart::common::CAllocator::getStaticType ( )
inlinestatic

Returns type string.

◆ getType()

const std::string & dart::common::CAllocator::getType ( ) const
inlineoverridevirtual

Returns type string.

Implements dart::common::MemoryAllocator.

◆ is()

bool dart::common::Castable< MemoryAllocator >::is ( ) const
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:

if (shape->is<Sphere>())
std::cout << "The shape type is sphere!\n";

◆ print()

void dart::common::CAllocator::print ( std::ostream &  os = std::cout,
int  indent = 0 
) const
overridevirtual

Prints state of the memory allocator.

Reimplemented from dart::common::MemoryAllocator.