CernVM-FS  2.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
glue::NentryTracker Class Reference

#include <glue_buffer.h>

Collaboration diagram for glue::NentryTracker:

Classes

struct  Cursor
 
struct  Entry
 
struct  Statistics
 

Public Member Functions

Statistics GetStatistics ()
 
 NentryTracker ()
 
 NentryTracker (const NentryTracker &other)
 
NentryTrackeroperator= (const NentryTracker &other)
 
 ~NentryTracker ()
 
NentryTrackerMove ()
 
void Add (const uint64_t inode_parent, const char *name, uint64_t timeout_s)
 
void Prune ()
 
void Disable ()
 
bool is_active () const
 
void SpawnCleaner (unsigned interval_s)
 
Cursor BeginEnumerate ()
 
bool NextEntry (Cursor *cursor, uint64_t *inode_parent, NameString *name)
 
void EndEnumerate (Cursor *cursor)
 

Static Public Member Functions

static void * MainCleaner (void *data)
 

Private Member Functions

 FRIEND_TEST (T_GlueBuffer, NentryTracker)
 
void CopyFrom (const NentryTracker &other)
 
void InitLock ()
 
void Lock () const
 
void Unlock () const
 
void DoPrune (uint64_t now)
 

Private Attributes

pthread_mutex_t * lock_
 
unsigned version_
 
Statistics statistics_
 
bool is_active_
 
BigQueue< Entryentries_
 
int pipe_terminate_ [2]
 
int cleaning_interval_ms_
 
pthread_t thread_cleaner_
 

Static Private Attributes

static const unsigned kVersion = 0
 

Detailed Description

Tracks fuse negative cache replies for active cache eviction

Definition at line 637 of file glue_buffer.h.

Constructor & Destructor Documentation

glue::NentryTracker::NentryTracker ( )

Definition at line 110 of file glue_buffer.cc.

Referenced by Move().

Here is the call graph for this function:

Here is the caller graph for this function:

glue::NentryTracker::NentryTracker ( const NentryTracker other)
explicit

Definition at line 127 of file glue_buffer.cc.

Here is the call graph for this function:

glue::NentryTracker::~NentryTracker ( )

Definition at line 117 of file glue_buffer.cc.

Referenced by RestoreState().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Function Documentation

void glue::NentryTracker::Add ( const uint64_t  inode_parent,
const char *  name,
uint64_t  timeout_s 
)
inline

Definition at line 682 of file glue_buffer.h.

Referenced by cvmfs::cvmfs_lookup().

Here is the call graph for this function:

Here is the caller graph for this function:

NentryTracker::Cursor glue::NentryTracker::BeginEnumerate ( )

Definition at line 234 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::NentryTracker::CopyFrom ( const NentryTracker other)
private

Definition at line 146 of file glue_buffer.cc.

Referenced by NentryTracker(), and operator=().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::NentryTracker::Disable ( )
inline

The nentry tracker is only needed for active cache eviction and can otherwise ignore new entries.

Definition at line 699 of file glue_buffer.h.

Referenced by Init().

Here is the caller graph for this function:

void glue::NentryTracker::DoPrune ( uint64_t  now)
inlineprivate

Definition at line 723 of file glue_buffer.h.

Referenced by Add(), and Prune().

Here is the caller graph for this function:

void glue::NentryTracker::EndEnumerate ( Cursor cursor)

Definition at line 257 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

glue::NentryTracker::FRIEND_TEST ( T_GlueBuffer  ,
NentryTracker   
)
private
Statistics glue::NentryTracker::GetStatistics ( )
inline

Definition at line 668 of file glue_buffer.h.

Referenced by TalkManager::MainResponder().

Here is the caller graph for this function:

void glue::NentryTracker::InitLock ( )
private

Definition at line 219 of file glue_buffer.cc.

Referenced by NentryTracker().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::NentryTracker::is_active ( ) const
inline

Definition at line 700 of file glue_buffer.h.

void glue::NentryTracker::Lock ( ) const
inlineprivate

Definition at line 714 of file glue_buffer.h.

Referenced by Add(), BeginEnumerate(), Move(), operator=(), and Prune().

Here is the call graph for this function:

Here is the caller graph for this function:

void * glue::NentryTracker::MainCleaner ( void *  data)
static

Definition at line 176 of file glue_buffer.cc.

Referenced by SpawnCleaner().

Here is the call graph for this function:

Here is the caller graph for this function:

NentryTracker * glue::NentryTracker::Move ( )

Lock object during copy

Definition at line 156 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::NentryTracker::NextEntry ( Cursor cursor,
uint64_t *  inode_parent,
NameString name 
)

Definition at line 242 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the caller graph for this function:

NentryTracker & glue::NentryTracker::operator= ( const NentryTracker other)

Definition at line 135 of file glue_buffer.cc.

Here is the call graph for this function:

void glue::NentryTracker::Prune ( )

Definition at line 227 of file glue_buffer.cc.

Referenced by MainCleaner(), and FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::NentryTracker::SpawnCleaner ( unsigned  interval_s)

Definition at line 166 of file glue_buffer.cc.

Referenced by Spawn().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::NentryTracker::Unlock ( ) const
inlineprivate

Definition at line 718 of file glue_buffer.h.

Referenced by Add(), EndEnumerate(), Move(), operator=(), and Prune().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

int glue::NentryTracker::cleaning_interval_ms_
private

Definition at line 741 of file glue_buffer.h.

Referenced by MainCleaner(), NentryTracker(), and SpawnCleaner().

BigQueue<Entry> glue::NentryTracker::entries_
private

Definition at line 738 of file glue_buffer.h.

Referenced by Add(), BeginEnumerate(), CopyFrom(), DoPrune(), Move(), and NextEntry().

bool glue::NentryTracker::is_active_
private

Definition at line 737 of file glue_buffer.h.

Referenced by Add(), CopyFrom(), Disable(), and is_active().

const unsigned glue::NentryTracker::kVersion = 0
staticprivate

Definition at line 709 of file glue_buffer.h.

Referenced by CopyFrom().

pthread_mutex_t* glue::NentryTracker::lock_
private

Definition at line 734 of file glue_buffer.h.

Referenced by InitLock(), Lock(), and Unlock().

int glue::NentryTracker::pipe_terminate_[2]
private

Definition at line 740 of file glue_buffer.h.

Referenced by MainCleaner(), NentryTracker(), SpawnCleaner(), and ~NentryTracker().

Statistics glue::NentryTracker::statistics_
private

Definition at line 736 of file glue_buffer.h.

Referenced by Add(), CopyFrom(), DoPrune(), GetStatistics(), and Move().

pthread_t glue::NentryTracker::thread_cleaner_
private

Definition at line 742 of file glue_buffer.h.

Referenced by SpawnCleaner(), and ~NentryTracker().

unsigned glue::NentryTracker::version_
private

Definition at line 735 of file glue_buffer.h.

Referenced by CopyFrom().


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