Quota information abstraction.
More...
#include <QuotaInfo.hpp>
|
class | Exception |
| QuotaInfo exceptions. More...
|
|
class | FS |
| Helper class to hold the device string and (optional) the fs type (to be able to do better selection on the quota method to use). More...
|
|
|
enum | Type { Usr_
, Grp_
} |
| Type of quota information.
|
|
|
| QuotaInfo (FS const &fs, int const id=Sys::geteuid(), Type const type=Usr_, std::string const &strPath="") |
|
std::string | getMethod () const |
| Get method string of utilized method.
|
|
unsigned long | getBlockHL () const |
| Hard limit of disk blocks.
|
|
unsigned long | getBlockSL () const |
| Soft limit of disk blocks.
|
|
unsigned long | getBlocks () const |
| Current block usage.
|
|
unsigned long | getINodeHL () const |
| Hard limit of inodes.
|
|
unsigned long | getINodeSL () const |
| Soft limit of inodes.
|
|
unsigned long | getINodes () const |
| Current inode usage.
|
|
time_t | getBlockTL () const |
| Block timer limit.
|
|
time_t | getINodeTL () const |
| Inodes timer limit.
|
|
bool | getFree (unsigned long const limit, unsigned long const blocks, unsigned long &free) const |
| Helper for getFree* methods.
|
|
bool | getFreeBlocksHL (unsigned long &free) const |
| Get free blocks from hard limit. False, if there is no hard limit.
|
|
bool | getFreeBlocksSL (unsigned long &free) const |
| Get free blocks from soft limit. False, if there is no soft limit.
|
|
bool | getFreeINodesHL (unsigned long &free) const |
| Get free indoes from hard limit. False, if there is no hard limit.
|
|
bool | getFreeInodesSL (unsigned long &free) const |
| Get free inodes from soft limit. False, if there is no soft limit.
|
|
|
static FS | file2fs (std::string const &fName, std::string const &tab="/proc/mounts") |
| Get FS information from any file in that fs. More...
|
|
Quota information abstraction.
May be extended easily be adding new methods:
- Add a new private methodXXX method (e.g. methodWinFake) that somehow sets all the quota values.
- Add it to the method vector (see constructor of QuotaInfo::Methods).
- Todo:
- : The interface is focused on linux "standard" quota interface. Interface should rather be most powerful, with lesser implementations falling back to sane defaults.
- Todo:
- : Nicer way to find out what interface to use rather then testing on by one (check "quota" source).
◆ QuotaInfo()
UI::Util::QuotaInfo::QuotaInfo |
( |
FS const & |
fs, |
|
|
int const |
id = Sys::geteuid() , |
|
|
Type const |
type = Usr_ , |
|
|
std::string const & |
strPath = "" |
|
) |
| |
- Parameters
-
fs | Device name (std::string - implicit) or file system (FS). |
id | ID as in quotactl(2), normally a user or group ID. |
type | Type (user or group) of quota info to retrieve. |
strPath | Extra parameter for windows "quota". |
References UI_THROW.
◆ file2fs()
QuotaInfo::FS UI::Util::QuotaInfo::file2fs |
( |
std::string const & |
fName, |
|
|
std::string const & |
tab = "/proc/mounts" |
|
) |
| |
|
static |
Get FS information from any file in that fs.
- Note
- : This method is potentially NOT thread-safe (uses getmntent under linux).
References UI_THROW.
The documentation for this class was generated from the following files: