Abstract interface to allocate and release pages.
The page allocator acquires and releases memory for pages. It does not load the page data, the returned pages are empty but guaranteed to have enough contiguous space for the given number of elements. The page allocator must be thread-safe.
Definition at line 40 of file RPageAllocator.hxx.
Public Member Functions | |
virtual | ~RPageAllocator ()=default |
virtual RPage | NewPage (ColumnId_t columnId, std::size_t elementSize, std::size_t nElements)=0 |
Reserves memory large enough to hold nElements of the given size. | |
Protected Member Functions | |
virtual void | DeletePage (RPage &page)=0 |
Releases the memory pointed to by page and resets the page's information. | |
Friends | |
class | RPage |
#include <ROOT/RPageAllocator.hxx>
|
virtualdefault |
|
protectedpure virtual |
Releases the memory pointed to by page and resets the page's information.
Note that the memory of the zero page must not be deleted. Called by the RPage destructor.
Implemented in ROOT::Experimental::Internal::RPageAllocatorHeap.
|
pure virtual |
Reserves memory large enough to hold nElements of the given size.
The page is immediately tagged with a column id. Returns a default constructed page on out-of-memory condition.
Implemented in ROOT::Experimental::Internal::RPageAllocatorHeap.
|
friend |
Definition at line 41 of file RPageAllocator.hxx.