The Pedigree Project 0.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PosixAdvisory::Table Class Reference

#include <advisory-lock-table.h>

+ Collaboration diagram for PosixAdvisory::Table:

Public Member Functions

 Table (Grant *current, Grant *scratch, size_t capacity)
 
bool conflict (const Grant &request, Grant &result) const
 
bool query (const Grant &request, Grant &result) const
 
Result apply (const Grant &request)
 
bool removeOwner (uint64_t owner, uintptr_t inode=0)
 
bool wouldDeadlock (const Grant &request, const Grant *const *waiters, size_t waiterCount) const
 
size_t count () const
 
const Grant & at (size_t index) const
 

Private Member Functions

bool append (const Grant &grant, size_t &count)
 

Private Attributes

Grant * m_Current
 
Grant * m_Scratch
 
const size_t m_Capacity
 
size_t m_Count = 0
 

Detailed Description

Caller supplies two equal-capacity buffers and serializes every operation.

Definition at line 38 of file advisory-lock-table.h.

Constructor & Destructor Documentation

◆ Table()

PosixAdvisory::Table::Table ( Grant *  current,
Grant *  scratch,
size_t  capacity 
)

Definition at line 58 of file advisory-lock-table.cc.

Member Function Documentation

◆ append()

bool PosixAdvisory::Table::append ( const Grant &  grant,
size_t &  count 
)
private

Definition at line 93 of file advisory-lock-table.cc.

◆ apply()

Result PosixAdvisory::Table::apply ( const Grant &  request)

Definition at line 100 of file advisory-lock-table.cc.

◆ at()

const Grant & PosixAdvisory::Table::at ( size_t  index) const
inline

Definition at line 49 of file advisory-lock-table.h.

◆ conflict()

bool PosixAdvisory::Table::conflict ( const Grant &  request,
Grant &  result 
) const

Definition at line 61 of file advisory-lock-table.cc.

◆ count()

size_t PosixAdvisory::Table::count ( ) const
inline

Definition at line 46 of file advisory-lock-table.h.

◆ query()

bool PosixAdvisory::Table::query ( const Grant &  request,
Grant &  result 
) const

Definition at line 73 of file advisory-lock-table.cc.

◆ removeOwner()

bool PosixAdvisory::Table::removeOwner ( uint64_t  owner,
uintptr_t  inode = 0 
)

Definition at line 158 of file advisory-lock-table.cc.

◆ wouldDeadlock()

bool PosixAdvisory::Table::wouldDeadlock ( const Grant &  request,
const Grant *const *  waiters,
size_t  waiterCount 
) const

Definition at line 171 of file advisory-lock-table.cc.

Member Data Documentation

◆ m_Capacity

const size_t PosixAdvisory::Table::m_Capacity
private

Definition at line 57 of file advisory-lock-table.h.

◆ m_Count

size_t PosixAdvisory::Table::m_Count = 0
private

Definition at line 58 of file advisory-lock-table.h.

◆ m_Current

Grant* PosixAdvisory::Table::m_Current
private

Definition at line 55 of file advisory-lock-table.h.

◆ m_Scratch

Grant* PosixAdvisory::Table::m_Scratch
private

Definition at line 56 of file advisory-lock-table.h.


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