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 Grantat (size_t index) const
 

Private Member Functions

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

Private Attributes

Grantm_Current
 
Grantm_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()

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

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

Member Function Documentation

◆ append()

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

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

◆ apply()

Result 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 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 Table::query ( const Grant request,
Grant result 
) const

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

◆ removeOwner()

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

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

◆ wouldDeadlock()

bool 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: