![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
An overlay view for the AllocationCluster to add functionality for adding / clearing extents and registering optional deleter functions.
std::align(pos,rest) to manage the storage coordinates coherently, allowing to re-establish the begin of each storage block always, using pointer arithmetics. Definition at line 91 of file allocation-cluster.cpp.
Classes | |
| struct | Extent |
| Block of allocated storage. More... | |
| union | ManagementView |
Static Public Member Functions | |
| static StorageManager & | access (AllocationCluster &clu) |
Public Member Functions | |
| void | addBlock () |
| void | discardAll () |
| void | attach (Destructor &dtor) |
| bool | empty () const |
| size_t | determineExtentCnt () const |
| size_t | calcAllocInCurrentBlock () const |
Private Types | |
| using | Destructors = lib::LinkedElements< Destructor, PolicyInvokeDtor > |
| using | Extents = lib::LinkedElements< Extent > |
Private Member Functions | |
| StorageManager ()=delete | |
| Extent * | getCurrentBlockStart () const |
| void | closeCurrentBlock () |
| void | prependNextBlock () |
Private Attributes | |
| ManagementView | view_ |
|
privatedelete |
| union lib::AllocationCluster::StorageManager::ManagementView |
|
private |
Definition at line 94 of file allocation-cluster.cpp.
|
private |
Definition at line 104 of file allocation-cluster.cpp.
|
inlinestatic |
Definition at line 121 of file allocation-cluster.cpp.
Referenced by AllocationCluster::~AllocationCluster(), AllocationCluster::expandStorage(), AllocationCluster::numBytes(), AllocationCluster::numExtents(), and AllocationCluster::registerDestructor().
Here is the caller graph for this function:
|
inline |
Definition at line 127 of file allocation-cluster.cpp.
References AllocationCluster::StorageManager::closeCurrentBlock(), and AllocationCluster::StorageManager::prependNextBlock().
Referenced by AllocationCluster::expandStorage().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 134 of file allocation-cluster.cpp.
References LinkedElements< N, ALO >::clear(), AllocationCluster::StorageManager::closeCurrentBlock(), AllocationCluster::StorageManager::ManagementView::extents, and AllocationCluster::StorageManager::view_.
Referenced by AllocationCluster::~AllocationCluster().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 141 of file allocation-cluster.cpp.
References AllocationCluster::StorageManager::Extent::dtors, AllocationCluster::StorageManager::getCurrentBlockStart(), and LinkedElements< N, ALO >::push().
Referenced by AllocationCluster::registerDestructor().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 148 of file allocation-cluster.cpp.
References AllocationCluster::Storage::pos, AllocationCluster::StorageManager::ManagementView::storage, and AllocationCluster::StorageManager::view_.
Referenced by AllocationCluster::StorageManager::closeCurrentBlock(), AllocationCluster::StorageManager::determineExtentCnt(), and AllocationCluster::StorageManager::getCurrentBlockStart().
Here is the caller graph for this function:
|
inline |
Definition at line 154 of file allocation-cluster.cpp.
References lib::asLinkedElements(), AllocationCluster::StorageManager::empty(), and AllocationCluster::StorageManager::getCurrentBlockStart().
Referenced by AllocationCluster::numExtents().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 162 of file allocation-cluster.cpp.
References AllocationCluster::max_size(), AllocationCluster::Storage::rest, AllocationCluster::StorageManager::ManagementView::storage, and AllocationCluster::StorageManager::view_.
Referenced by AllocationCluster::numBytes().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 171 of file allocation-cluster.cpp.
References AllocationCluster::StorageManager::empty(), AllocationCluster::EXTENT_SIZ, AllocationCluster::Storage::pos, AllocationCluster::Storage::rest, AllocationCluster::StorageManager::ManagementView::storage, and AllocationCluster::StorageManager::view_.
Referenced by AllocationCluster::StorageManager::attach(), AllocationCluster::StorageManager::closeCurrentBlock(), and AllocationCluster::StorageManager::determineExtentCnt().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 181 of file allocation-cluster.cpp.
References AllocationCluster::StorageManager::empty(), AllocationCluster::StorageManager::getCurrentBlockStart(), AllocationCluster::Storage::pos, AllocationCluster::Storage::rest, AllocationCluster::StorageManager::ManagementView::storage, and AllocationCluster::StorageManager::view_.
Referenced by AllocationCluster::StorageManager::addBlock(), and AllocationCluster::StorageManager::discardAll().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 190 of file allocation-cluster.cpp.
References LinkedElements< N, ALO >::emplace(), AllocationCluster::StorageManager::ManagementView::extents, AllocationCluster::max_size(), AllocationCluster::Storage::pos, AllocationCluster::Storage::rest, AllocationCluster::StorageManager::Extent::storage, AllocationCluster::StorageManager::ManagementView::storage, LinkedElements< N, ALO >::top(), and AllocationCluster::StorageManager::view_.
Referenced by AllocationCluster::StorageManager::addBlock().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 115 of file allocation-cluster.cpp.
Referenced by AllocationCluster::StorageManager::calcAllocInCurrentBlock(), AllocationCluster::StorageManager::closeCurrentBlock(), AllocationCluster::StorageManager::discardAll(), AllocationCluster::StorageManager::empty(), AllocationCluster::StorageManager::getCurrentBlockStart(), and AllocationCluster::StorageManager::prependNextBlock().
Collaboration diagram for AllocationCluster::StorageManager: