The Pedigree Project 0.1
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Ext2QuotaLedger Class Reference

#include <Ext2Quota.h>

+ Collaboration diagram for Ext2QuotaLedger:

Classes

struct  InodeCharge
 

Public Member Functions

InodeCharge * find (uint32_t inode) const
 
QuotaStatus track (uint32_t inode, uint32_t uid, uint32_t gid, uint64_t bytes)
 
QuotaStatus create (uint32_t inode, uint32_t uid, uint32_t gid)
 
QuotaStatus reserve (uint32_t inode, uint64_t bytes)
 
void refund (uint32_t inode, uint64_t bytes)
 
void forget (uint32_t inode)
 
QuotaStatus transfer (uint32_t inode, uint32_t uid, uint32_t gid)
 
QuotaStatus exempt (uint32_t inode, bool exempt)
 
QuotaStatus enable (QuotaType type, QuotaTable &loaded, uint32_t maximumId=0xffffffffU)
 
void disable (QuotaType type)
 
bool enabled (QuotaType type) const
 
QuotaTable & table (QuotaType type)
 
const Tree< uint32_t, InodeCharge * > & inodes () const
 

Private Member Functions

QuotaStatus prepareCharge (uint32_t uid, uint32_t gid, uint64_t bytes, uint64_t inodes, bool enforce)
 
void charge (uint32_t uid, uint32_t gid, uint64_t bytes, uint64_t inodes)
 
void refund (uint32_t uid, uint32_t gid, uint64_t bytes, uint64_t inodes)
 

Private Attributes

Tree< uint32_t, InodeCharge * > m_Inodes
 
QuotaTable m_Tables [2]
 
bool m_Enabled [2] = {}
 
uint32_t m_MaximumId [2] = {0xffffffffU, 0xffffffffU}
 

Detailed Description

Every method requires the filesystem allocation lock.

Definition at line 10 of file Ext2Quota.h.

Constructor & Destructor Documentation

◆ ~Ext2QuotaLedger()

Ext2QuotaLedger::~Ext2QuotaLedger ( )

Definition at line 6 of file Ext2Quota.cc.

Member Function Documentation

◆ charge()

void Ext2QuotaLedger::charge ( uint32_t  uid,
uint32_t  gid,
uint64_t  bytes,
uint64_t  inodes 
)
private

Definition at line 33 of file Ext2Quota.cc.

◆ create()

QuotaStatus Ext2QuotaLedger::create ( uint32_t  inode,
uint32_t  uid,
uint32_t  gid 
)

Definition at line 69 of file Ext2Quota.cc.

◆ disable()

void Ext2QuotaLedger::disable ( QuotaType  type)

Definition at line 186 of file Ext2Quota.cc.

◆ enable()

QuotaStatus Ext2QuotaLedger::enable ( QuotaType  type,
QuotaTable &  loaded,
uint32_t  maximumId = 0xffffffffU 
)

Definition at line 157 of file Ext2Quota.cc.

◆ enabled()

bool Ext2QuotaLedger::enabled ( QuotaType  type) const

Definition at line 192 of file Ext2Quota.cc.

◆ exempt()

QuotaStatus Ext2QuotaLedger::exempt ( uint32_t  inode,
bool  exempt 
)

Definition at line 141 of file Ext2Quota.cc.

◆ find()

Ext2QuotaLedger::InodeCharge * Ext2QuotaLedger::find ( uint32_t  inode) const

Definition at line 11 of file Ext2Quota.cc.

◆ forget()

void Ext2QuotaLedger::forget ( uint32_t  inode)

Definition at line 102 of file Ext2Quota.cc.

◆ inodes()

const Tree< uint32_t, InodeCharge * > & Ext2QuotaLedger::inodes ( ) const
inline

Definition at line 31 of file Ext2Quota.h.

◆ prepareCharge()

QuotaStatus Ext2QuotaLedger::prepareCharge ( uint32_t  uid,
uint32_t  gid,
uint64_t  bytes,
uint64_t  inodes,
bool  enforce 
)
private

Definition at line 15 of file Ext2Quota.cc.

◆ refund() [1/2]

void Ext2QuotaLedger::refund ( uint32_t  inode,
uint64_t  bytes 
)

Definition at line 90 of file Ext2Quota.cc.

◆ refund() [2/2]

void Ext2QuotaLedger::refund ( uint32_t  uid,
uint32_t  gid,
uint64_t  bytes,
uint64_t  inodes 
)
private

Definition at line 41 of file Ext2Quota.cc.

◆ reserve()

QuotaStatus Ext2QuotaLedger::reserve ( uint32_t  inode,
uint64_t  bytes 
)

Definition at line 75 of file Ext2Quota.cc.

◆ table()

QuotaTable & Ext2QuotaLedger::table ( QuotaType  type)

Definition at line 196 of file Ext2Quota.cc.

◆ track()

QuotaStatus Ext2QuotaLedger::track ( uint32_t  inode,
uint32_t  uid,
uint32_t  gid,
uint64_t  bytes 
)

Definition at line 49 of file Ext2Quota.cc.

◆ transfer()

QuotaStatus Ext2QuotaLedger::transfer ( uint32_t  inode,
uint32_t  uid,
uint32_t  gid 
)

Definition at line 112 of file Ext2Quota.cc.

Member Data Documentation

◆ m_Enabled

bool Ext2QuotaLedger::m_Enabled[2] = {}
private

Definition at line 42 of file Ext2Quota.h.

◆ m_Inodes

Tree<uint32_t, InodeCharge*> Ext2QuotaLedger::m_Inodes
private

Definition at line 40 of file Ext2Quota.h.

◆ m_MaximumId

uint32_t Ext2QuotaLedger::m_MaximumId[2] = {0xffffffffU, 0xffffffffU}
private

Definition at line 43 of file Ext2Quota.h.

◆ m_Tables

QuotaTable Ext2QuotaLedger::m_Tables[2]
private

Definition at line 41 of file Ext2Quota.h.


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