Classes | |
class | FlexibleArray |
class | IdSet |
a shareable set of positive uint32_t IDs with O(1) insertion/removal ops More... | |
class | IdSetInnerNode |
a helper class to perform inner node manipulation for IdSet More... | |
class | IdSetMeasurements |
basic IdSet storage parameters, extracted here to keep them constant More... | |
class | IdSetPosition |
class | Object |
attaches to a shared memory segment with Class object owned by Owner More... | |
class | Owner |
class | PageId |
Shared memory page identifier, address, or handler. More... | |
class | PagePool |
class | PageStack |
class | Pointer |
class | RegisteredRunner |
class | Segment |
POSIX shared memory segment. More... | |
Typedefs | |
typedef uint32_t | PoolId |
Enumerations | |
enum | IdSetNavigationDirection { dirNone , dirLeft , dirRight , dirEnd } |
Functions | |
std::ostream & | operator<< (std::ostream &os, const PageId &page) |
writes page address (e.g., "sh_page5.3"), for debugging More... | |
bool | GetPage (const PageId::Purpose purpose, PageId &page) |
sets page ID and returns true unless no free pages are found More... | |
void | PutPage (PageId &page) |
makes identified page available as a free page to future GetPage() callers More... | |
char * | PagePointer (const PageId &page) |
converts page handler into a temporary writeable shared memory pointer More... | |
size_t | PageLimit () |
the total number of shared memory pages that can be in use at any time More... | |
size_t | PageLimit (const int purpose) |
size_t | PageLevel () |
approximate total number of shared memory pages used now More... | |
size_t | PageLevel (const int purpose) |
approximate total number of shared memory pages used now for given purpose More... | |
size_t | PagesAvailable () |
approximate total number of shared memory pages we can allocate now More... | |
size_t | PagesAvailable (const int purpose) |
size_t | PageSize () |
returns page size in bytes; all pages are assumed to be the same size More... | |
void | NotePageNeed (const int purpose, const int count) |
claim the need for a number of pages for a given purpose More... | |
Variables | |
static const IdSet::size_type | BitsPerLeaf = 64 |
the maximum number of pages that a leaf node can store More... | |
Typedef Documentation
◆ PoolId
typedef uint32_t Ipc::Mem::PoolId |
Enumeration Type Documentation
◆ IdSetNavigationDirection
Enumerator | |
---|---|
dirNone | |
dirLeft | |
dirRight | |
dirEnd |
Definition at line 27 of file PageStack.h.
Function Documentation
◆ GetPage()
bool Ipc::Mem::GetPage | ( | const PageId::Purpose | purpose, |
PageId & | page | ||
) |
Definition at line 34 of file Pages.cc.
References Ipc::Mem::PagePool::get(), PagesAvailable(), and ThePagePool.
Referenced by diskerRead(), IpcIoFile::push(), and MemStore::reserveSapForWriting().
◆ NotePageNeed()
Definition at line 72 of file Pages.cc.
References Must, and TheLimits.
Referenced by IpcIoRr::claimMemoryNeeds(), and MemStoreRr::claimMemoryNeeds().
◆ operator<<()
std::ostream & Ipc::Mem::operator<< | ( | std::ostream & | os, |
const PageId & | page | ||
) |
Definition at line 16 of file Page.cc.
References Ipc::Mem::PageId::number, and Ipc::Mem::PageId::pool.
◆ PageLevel() [1/2]
size_t Ipc::Mem::PageLevel | ( | ) |
Definition at line 80 of file Pages.cc.
References Ipc::Mem::PagePool::level(), and ThePagePool.
Referenced by Rock::SwapDir::canStore(), MemStore::currentSize(), MemStore::getStats(), Transients::getStats(), Rock::SwapDir::openStoreIO(), and PagesAvailable().
◆ PageLevel() [2/2]
Definition at line 86 of file Pages.cc.
References Ipc::Mem::PagePool::level(), and ThePagePool.
◆ PageLimit() [1/2]
size_t Ipc::Mem::PageLimit | ( | ) |
Definition at line 55 of file Pages.cc.
References PageLimit().
Referenced by Rock::SwapDir::canStore(), SharedMemPagesRr::create(), MemStore::getStats(), Transients::getStats(), Rock::SwapDir::openStoreIO(), PageLimit(), PagesAvailable(), and SharedMemPagesRr::useConfig().
◆ PageLimit() [2/2]
◆ PagePointer()
char * Ipc::Mem::PagePointer | ( | const PageId & | page | ) |
Definition at line 48 of file Pages.cc.
References Must, Ipc::Mem::PagePool::pagePointer(), and ThePagePool.
Referenced by MemStore::copyFromShm(), ShmWriter::copyToShmSlice(), MemStore::copyToShmSlice(), diskerRead(), diskerWriteAttempts(), IpcIoFile::push(), IpcIoFile::readCompleted(), and MemStore::updateHeadersOrThrow().
◆ PagesAvailable() [1/2]
|
inline |
Definition at line 47 of file Pages.h.
References PageLevel(), and PageLimit().
Referenced by GetPage(), and MemStore::stat().
◆ PagesAvailable() [2/2]
approximate total number of shared memory pages we can allocate now for given purpose
Definition at line 51 of file Pages.h.
References PageLevel(), and PageLimit().
◆ PageSize()
size_t Ipc::Mem::PageSize | ( | ) |
Definition at line 28 of file Pages.cc.
Referenced by ShmWriter::copyToShmSlice(), MemStore::copyToShmSlice(), SharedMemPagesRr::create(), MemStore::currentSize(), diskerRead(), diskerWriteAttempts(), MemStore::EntryLimit(), MemStoreRr::finalizeConfig(), MemStore::getStats(), Transients::getStats(), MemStore::nextAppendableSlice(), IpcIoFile::push(), and MemStore::updateHeadersOrThrow().
◆ PutPage()
void Ipc::Mem::PutPage | ( | PageId & | page | ) |
Definition at line 41 of file Pages.cc.
References Must, Ipc::Mem::PagePool::put(), and ThePagePool.
Referenced by diskerWrite(), MemStore::noteFreeMapSlice(), IpcIoFile::push(), and IpcIoFile::readCompleted().
Variable Documentation
◆ BitsPerLeaf
|
static |
Definition at line 51 of file PageStack.cc.
Referenced by Ipc::Mem::IdSetMeasurements::IdSetMeasurements(), Ipc::Mem::IdSet::fillAllNodes(), Ipc::Mem::IdSet::leafPop(), Ipc::Mem::IdSet::leafPush(), Ipc::Mem::IdSet::leafTruncate(), Ipc::Mem::IdSet::makeFullBeforeSharing(), Ipc::Mem::IdSet::push(), and Ipc::Mem::IdSet::truncateExtras().