|
Squid Web Cache master
|
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 | |
| bool | GetPage (const PageId::Purpose purpose, PageId &page) |
| sets page ID and returns true unless no free pages are found | |
| void | PutPage (PageId &page) |
| makes identified page available as a free page to future GetPage() callers | |
| char * | PagePointer (const PageId &page) |
| converts page handler into a temporary writeable shared memory pointer | |
| size_t | PageLimit () |
| the total number of shared memory pages that can be in use at any time | |
| size_t | PageLimit (const int purpose) |
| size_t | PageLevel () |
| approximate total number of shared memory pages used now | |
| size_t | PageLevel (const int purpose) |
| approximate total number of shared memory pages used now for given purpose | |
| size_t | PagesAvailable () |
| approximate total number of shared memory pages we can allocate now | |
| size_t | PagesAvailable (const int purpose) |
| size_t | PageSize () |
| returns page size in bytes; all pages are assumed to be the same size | |
| void | NotePageNeed (const int purpose, const int count) |
| claim the need for a number of pages for a given purpose | |
Variables | |
| static const IdSet::size_type | BitsPerLeaf = 64 |
| the maximum number of pages that a leaf node can store | |
| typedef uint32_t Ipc::Mem::PoolId |
| Enumerator | |
|---|---|
| dirNone | |
| dirLeft | |
| dirRight | |
| dirEnd | |
Definition at line 27 of file PageStack.h.
| 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().
Definition at line 72 of file Pages.cc.
References Must, and TheLimits.
Referenced by IpcIoRr::claimMemoryNeeds(), and MemStoreRr::claimMemoryNeeds().
| 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.
| 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(), PagesAvailable(), and PagesAvailable().
Definition at line 86 of file Pages.cc.
References Ipc::Mem::PagePool::level(), and ThePagePool.
| 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(), PagesAvailable(), and SharedMemPagesRr::useConfig().
| 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 diskerRead(), diskerWriteAttempts(), IpcIoFile::push(), and IpcIoFile::readCompleted().
|
inline |
Definition at line 47 of file Pages.h.
References PageLevel(), and PageLimit().
Referenced by GetPage(), and MemStore::stat().
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().
| 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().
| 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().
|
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().