|
LSSTApplications
1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
LSSTDataManagementBasePackage
|
#include <Arena.h>
Public Member Functions | |
| Arena (size_t blockCapacity=262144/sizeof(T)) | |
| ~Arena () | |
| void | destroy (T *ptr) |
| size_t | capacity () const |
| size_t | getNumBytes () const |
| size_t | getBlockCapacity () const |
Private Member Functions | |
| BOOST_STATIC_ASSERT ((ALIGN &(ALIGN-1))==0) | |
| Arena (Arena const &) | |
| Arena & | operator= (Arena const &) |
| void * | _alloc () |
| void | _dealloc (void *ptr) |
| void | _grow () |
| friend | void (::operator delete<>)(void * |
Static Private Member Functions | |
| static unsigned char * | _align (unsigned char *p) |
Private Attributes | |
| std::vector< unsigned char * > | _blocks |
| List of memory blocks. More... | |
| std::vector< std::vector< bool > > | _masks |
| size_t const | _blockCapacity |
| Capacity of a memory block. More... | |
| size_t | _nFree |
| Number of free elements. More... | |
| unsigned char * | _free |
| Head of linked free-list, 0 if arena is full. More... | |
Static Private Attributes | |
| static const size_t | ALIGN = 16 |
| static const size_t | SIZE = (sizeof(T) + ALIGN - 1) & ~(ALIGN - 1) |
Friends | |
| void * | operator new) (size_t, lsst::ap::utils::Arena< T > &) |
A free-list based single-threaded arena allocator for objects of class T.
| lsst::ap::utils::Arena< T >::Arena | ( | size_t | blockCapacity = 262144/sizeof(T) | ) |
Creates a new Arena for objects of type T. The arena allocates memory from the system in blocks, each of which is large enough to contain blockCapacity objects.
Definition at line 41 of file Arena.cc.
| lsst::ap::utils::Arena< T >::~Arena | ( | ) |
Definition at line 56 of file Arena.cc.
|
private |
|
inlinestaticprivate |
|
inlineprivate |
Allocates and returns a pointer to a memory region large enough to hold a single object of type T.
Definition at line 116 of file Arena.cc.
|
inlineprivate |
Frees the memory at the given address.
Definition at line 129 of file Arena.cc.
|
private |
Definition at line 167 of file Arena.cc.
|
private |
|
inline |
Returns the total number of objects that can fit in the arena.
Definition at line 147 of file Arena.cc.
|
inline |
|
inline |
Returns the number of objects that fit in a single arena block.
Definition at line 161 of file Arena.cc.
|
inline |
|
private |
|
private |
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
1.8.5