template <SealableMemory Memory, size_t Reserve = 0>
class SealedPageAllocator
Defined at line 31 of file ../../src/lib/trivial-allocator/include/lib/trivial-allocator/sealed-page-allocator.h
trivial_allocator::SealedPageAllocator is a variant of PageAllocator that
automatically "seals" its allocations to make them read-only.
The release() method on the "smart pointer" object it returns has a special
behavior: it moves that allocation to a "staging area" in the allocator.
The staging area has space for at least one allocation, and as many more as
the Reserve template argument requests. While "released" allocations are in
the staging area, they are writable. When old allocations are evicted from
the staging area to make room for a new allocation's release(), they get
"sealed" so their memory is read-only, and then they are leaked. Just
before destruction, the Seal() method can be called to seal (and leak) the
last allocations still in flight. If Seal() is not called, any unsealed
allocations still outstanding will be deallocated on destruction.
Public Methods
void SealedPageAllocator<Memory, Reserve> (SealedPageAllocator<Memory, Reserve> && )
Defined at line 66 of file ../../src/lib/trivial-allocator/include/lib/trivial-allocator/sealed-page-allocator.h
SealedPageAllocator<Memory, Reserve> & operator= (SealedPageAllocator<Memory, Reserve> && )
Defined at line 68 of file ../../src/lib/trivial-allocator/include/lib/trivial-allocator/sealed-page-allocator.h
Allocation operator() (size_t & size, size_t alignment)
Defined at line 70 of file ../../src/lib/trivial-allocator/include/lib/trivial-allocator/sealed-page-allocator.h
void Seal ()
Defined at line 76 of file ../../src/lib/trivial-allocator/include/lib/trivial-allocator/sealed-page-allocator.h