Ipc::StoreMapAnchor Class Reference

#include <StoreMap.h>

Collaboration diagram for Ipc::StoreMapAnchor:


struct  Basics

Public Member Functions

 StoreMapAnchor ()
void set (const StoreEntry &anEntry, const cache_key *aKey=nullptr)
 store StoreEntry key and basics for an inode slot More...
void exportInto (StoreEntry &) const
 load StoreEntry basics that were previously stored with set() More...
void setKey (const cache_key *const aKey)
bool sameKey (const cache_key *const aKey) const
void rewind ()
 undo the effects of set(), setKey(), etc., but keep locks and state More...
bool empty () const
bool reading () const
bool writing () const
bool complete () const

Public Attributes

ReadWriteLock lock
 protects slot data below More...
std::atomic< uint8_t > waitingToBeFreed
std::atomic< uint8_t > writerHalted
 whether StoreMap::abortWriting() was called for a read-locked entry More...
uint64_t key [2] = {0, 0}
 StoreEntry key. More...
struct Ipc::StoreMapAnchor::Basics basics
std::atomic< StoreMapSliceIdstart
 where the chain of StoreEntry slices begins [app] More...
std::atomic< StoreMapSliceIdsplicingPoint

Detailed Description

Maintains shareable information about a StoreEntry as a whole. An anchor points to one or more StoreEntry slices. This is the only lockable part of shared StoreEntry information, providing protection for all StoreEntry slices.

Definition at line 56 of file StoreMap.h.

Constructor & Destructor Documentation

◆ StoreMapAnchor()

Ipc::StoreMapAnchor::StoreMapAnchor ( )

Definition at line 939 of file StoreMap.cc.

Member Function Documentation

◆ complete()

bool Ipc::StoreMapAnchor::complete ( ) const

Definition at line 77 of file StoreMap.h.

References empty(), and writing().

Referenced by Rock::SwapDir::anchorEntry(), MemStore::anchorEntry(), and MemStore::copyFromShm().

◆ empty()

bool Ipc::StoreMapAnchor::empty ( ) const

Definition at line 74 of file StoreMap.h.

References key.

Referenced by Ipc::StoreMap::compareVersions(), complete(), and Ipc::StoreMap::freeChain().

◆ exportInto()

◆ reading()

bool Ipc::StoreMapAnchor::reading ( ) const

Definition at line 75 of file StoreMap.h.

References lock, and Ipc::ReadWriteLock::readers.

Referenced by Ipc::StoreMap::sliceContaining().

◆ rewind()

void Ipc::StoreMapAnchor::rewind ( )

Definition at line 997 of file StoreMap.cc.

References assert.

Referenced by Ipc::StoreMap::forgetWritingEntry(), and Ipc::StoreMap::freeChain().

◆ sameKey()

bool Ipc::StoreMapAnchor::sameKey ( const cache_key *const  aKey) const

Definition at line 952 of file StoreMap.cc.

Referenced by Rock::SwapDir::openStoreIO(), and Rock::Rebuild::sameEntry().

◆ set()

◆ setKey()

void Ipc::StoreMapAnchor::setKey ( const cache_key *const  aKey)

Definition at line 945 of file StoreMap.cc.

References Store::Controller::markedForDeletion(), and Store::Root().

Referenced by Rock::Rebuild::primeNewEntry().

◆ writing()

bool Ipc::StoreMapAnchor::writing ( ) const

Member Data Documentation

◆ basics

◆ key

uint64_t Ipc::StoreMapAnchor::key[2] = {0, 0}

Definition at line 88 of file StoreMap.h.

Referenced by empty().

◆ lock

◆ splicingPoint

std::atomic<StoreMapSliceId> Ipc::StoreMapAnchor::splicingPoint

where the updated chain prefix containing metadata/headers ends [update] if unset, this anchor points to a chain that was never updated

Definition at line 115 of file StoreMap.h.

Referenced by Ipc::StoreMap::closeForUpdating(), and Ipc::StoreMap::freeChain().

◆ start

◆ waitingToBeFreed

std::atomic<uint8_t> Ipc::StoreMapAnchor::waitingToBeFreed

may be accessed w/o a lock

Definition at line 81 of file StoreMap.h.

Referenced by Ipc::StoreMap::closeForUpdating().

◆ writerHalted

std::atomic<uint8_t> Ipc::StoreMapAnchor::writerHalted

Definition at line 83 of file StoreMap.h.

The documentation for this class was generated from the following files:






Web Site Translations