Lugdunum  0.1.0
Public Member Functions | Private Attributes | List of all members
lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy > Class Template Reference

#include <Arena.hpp>

Collaboration diagram for lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >:
[legend]

Public Member Functions

 Arena ()=default
 
 Arena (Area::IArea *area)
 
 Arena (const Arena &)=delete
 
 Arena (Arena &&)=default
 
Arenaoperator= (const Arena &)=delete
 
Arenaoperator= (Arena &&)=default
 
 ~Arena ()=default
 
void * allocate (size_t size, size_t alignment, size_t offset, const char *file, size_t line)
 
void free (void *ptr)
 
void reset ()
 
Allocator & allocator ()
 
const Allocator & allocator () const
 

Private Attributes

Allocator _allocator
 
ThreadPolicy _threadGuard
 
BoundsCheckingPolicy _boundsChecker
 
MemoryMarkingPolicy _memoryMarker
 

Detailed Description

template<class Allocator, class ThreadPolicy, class BoundsCheckingPolicy, class MemoryMarkingPolicy>
class lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >

Definition at line 17 of file Arena.hpp.

Constructor & Destructor Documentation

◆ Arena() [1/4]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::Arena ( )
default

◆ Arena() [2/4]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
Arena::Arena ( Area::IArea area)
explicit

Definition at line 7 of file Arena.inl.

◆ Arena() [3/4]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::Arena ( const Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy > &  )
delete

◆ Arena() [4/4]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::Arena ( Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy > &&  )
default

◆ ~Arena()

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::~Arena ( )
default

Member Function Documentation

◆ operator=() [1/2]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
Arena& lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::operator= ( const Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy > &  )
delete

◆ operator=() [2/2]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
Arena& lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::operator= ( Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy > &&  )
default

◆ allocate()

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
void * Arena::allocate ( size_t  size,
size_t  alignment,
size_t  offset,
const char *  file,
size_t  line 
)

Definition at line 15 of file Arena.inl.

◆ free()

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
void Arena::free ( void *  ptr)

Definition at line 42 of file Arena.inl.

◆ reset()

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
void Arena::reset ( )

Definition at line 68 of file Arena.inl.

◆ allocator() [1/2]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
Allocator & Arena::allocator ( )

Definition at line 83 of file Arena.inl.

◆ allocator() [2/2]

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
const Allocator & Arena::allocator ( ) const

Definition at line 93 of file Arena.inl.

Member Data Documentation

◆ _allocator

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
Allocator lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::_allocator
private

Definition at line 38 of file Arena.hpp.

◆ _threadGuard

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
ThreadPolicy lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::_threadGuard
private

Definition at line 39 of file Arena.hpp.

◆ _boundsChecker

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
BoundsCheckingPolicy lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::_boundsChecker
private

Definition at line 40 of file Arena.hpp.

◆ _memoryMarker

template<class Allocator , class ThreadPolicy , class BoundsCheckingPolicy , class MemoryMarkingPolicy >
MemoryMarkingPolicy lug::System::Memory::Arena< Allocator, ThreadPolicy, BoundsCheckingPolicy, MemoryMarkingPolicy >::_memoryMarker
private

Definition at line 41 of file Arena.hpp.


The documentation for this class was generated from the following files: