class ov::Allocator

Overview

Wraps allocator implementation to provide safe way to store allocater loaded from shared library And constructs default based on new delete c++ calls allocator if created without parameters. More…

#include <allocator.hpp>

class Allocator
{
public:
    // construction

    Allocator();
    Allocator(const Allocator& other);
    Allocator(Allocator&& other);
    Allocator(const AllocatorImpl::Ptr& impl);

    // methods

    Allocator& operator = (const Allocator& other);
    Allocator& operator = (Allocator&& other);

    void \* allocate(
        const size_t bytes,
        const size_t alignment = alignof(max_align_t)
        );

    void deallocate(
        void \* ptr,
        const size_t bytes = 0,
        const size_t alignment = alignof(max_align_t)
        );

    bool operator == (const Allocator& other) const;
    bool operator ! () const;
    operator bool () const;
};

Detailed Documentation

Wraps allocator implementation to provide safe way to store allocater loaded from shared library And constructs default based on new delete c++ calls allocator if created without parameters.

Construction

Allocator()

Default constructor.

Allocator(const Allocator& other)

Default copy constructor.

Parameters:

other

other Allocator object

Allocator(Allocator&& other)

Default move constructor.

Parameters:

other

other Allocator object

Allocator(const AllocatorImpl::Ptr& impl)

Constructs Allocator from the initialized std::shared_ptr.

Parameters:

impl

Initialized shared pointer

Methods

Allocator& operator = (const Allocator& other)

Default copy assignment operator.

Parameters:

other

other Allocator object

Returns:

reference to the current object

Allocator& operator = (Allocator&& other)

Default move assignment operator.

Parameters:

other

other Allocator object

Returns:

reference to the current object

void \* allocate(
    const size_t bytes,
    const size_t alignment = alignof(max_align_t)
    )

Allocates memory.

Parameters:

bytes

The size in bytes at least to allocate

alignment

The alignment of storage

Exception

if specified size and alignment is not supported

Returns:

Handle to the allocated resource

void deallocate(
    void \* ptr,
    const size_t bytes = 0,
    const size_t alignment = alignof(max_align_t)
    )

Releases the handle and all associated memory resources which invalidates the handle.

Parameters:

ptr

The handle to free

bytes

The size in bytes that was passed into allocate() method

alignment

The alignment of storage that was passed into allocate() method

bool operator == (const Allocator& other) const

Compares with other AllocatorImpl.

Parameters:

other

Other instance of allocator

Returns:

true if and only if memory allocated from one AllocatorImpl can be deallocated from the other and vice versa

bool operator ! () const

Checks if current Allocator object is not initialized.

Returns:

true if current Allocator object is not initialized, false - otherwise

operator bool () const

Checks if current Allocator object is initialized.

Returns:

true if current Allocator object is initialized, false - otherwise