12#ifndef ZYPP_DISKUSAGE_COUNTER_H
13#define ZYPP_DISKUSAGE_COUNTER_H
21#include <zypp/base/Flags.h>
67 const std::string & f = std::string(),
68 long long bs = 0LL,
long long total = 0LL,
long long used = 0LL,
long long pkg = 0LL,
81 const std::string & f = std::string(),
82 long long bs = 0LL,
long long total = 0LL,
long long used = 0LL,
long long pkg = 0LL,
84 :
MountPoint(
std::string(d?d:
""), f, bs, total, used, pkg, hints )
90 long long bs,
long long total = 0LL,
long long used = 0LL,
long long pkg = 0LL,
96 long long bs,
long long total = 0LL,
long long used = 0LL,
long long pkg = 0LL,
98 :
MountPoint(
std::string(d?d:
""), bs, total, used, pkg, hints )
198 template<
class Iterator>
202 for_( it, begin_r, end_r )
Store and operate with byte count.
static const Unit K
1024 Byte
static const Unit B
1 Byte
Compute disk space occupied by packages across partitions/directories.
const MountPointSet & getMountPoints() const
Get the current MountPointSet.
static MountPointSet justRootPartition()
Only one entry for "/" to collect total sizes.
MountPointSet disk_usage(Iterator begin_r, Iterator end_r) const
Compute disk usage of a collection (convertible by asSolvable).
MountPointSet disk_usage(const ResPool &pool) const
Compute disk usage if the current transaction woud be commited.
void setMountPoints(const MountPointSet &mps_r)
Set a MountPointSet to compute.
std::set< MountPoint > MountPointSet
static MountPointSet detectMountPoints(const std::string &rootdir="/")
Get mountpoints of system below rootdir If we happen to detect snapshotting btrfs partitions,...
MountPointSet disk_usage(const PoolItem &pi_r) const
MountPointSet disk_usage(const ResObject::constPtr &obj_r) const
std::ostream & operator<<(std::ostream &str, const DiskUsageCounter &obj)
Stream output.
DiskUsageCounter(const MountPointSet &mps_r)
Ctor taking the MountPointSet to compute.
Combining sat::Solvable and ResStatus.
TraitsType::constPtrType constPtr
Libsolv (bit)Map wrapper.
static constexpr PoolSizeType poolSize
An object indicating the bitmap should match the current pools capacity.
void set(size_type idx_r)
Set bit idx_r.
A Solvable object within the sat Pool.
String related utilities and Regular expression matching.
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Mount point description If block_size is set DiskUsageCoutner will assume half a block_size is wasted...
MountPoint(const std::string &d, long long bs, long long total=0LL, long long used=0LL, long long pkg=0LL, HintFlags hints=NoHint)
Ctor initialize directory and sizes.
long long used_size
Used size of the filesystem in KiB (0 if you don't care)
MountPoint(const std::string &d, Hint hint)
ByteCount commitDiff() const
Size change due to installation as ByteCount for convenience.
MountPoint(const std::string &d, HintFlags hints)
Ctor just name and hints, all sizes 0.
ZYPP_DECLARE_FLAGS(HintFlags, Hint)
ByteCount usedSize() const
Used size of the filesystem as ByteCount for convenience.
ByteCount freeSize() const
Free size of the filesystem as ByteCount for convenience.
@ Hint_readonly
readonly partitions
@ Hint_growonly
growonly partitions (e.g. snapshotting btrfs)
MountPoint(const char *d, const std::string &f=std::string(), long long bs=0LL, long long total=0LL, long long used=0LL, long long pkg=0LL, HintFlags hints=NoHint)
long long block_size
Block size of the filesystem in B (0 if you don't care)
MountPoint(const char *d, HintFlags hints)
ByteCount freeAfterCommit() const
Free size after installation as ByteCount for convenience.
long long total_size
Total size of the filesystem in KiB (0 if you don't care)
MountPoint(const char *d, long long bs, long long total=0LL, long long used=0LL, long long pkg=0LL, HintFlags hints=NoHint)
bool readonly
hint for readonly partitions
std::string dir
Directory name.
ByteCount blockSize() const
Block size of the filesystem as ByteCount for convenience.
MountPoint(const char *d, Hint hint)
long long pkg_size
Used size after installation in KiB (computed by DiskUsageCoutner)
MountPoint(const std::string &d="/", const std::string &f=std::string(), long long bs=0LL, long long total=0LL, long long used=0LL, long long pkg=0LL, HintFlags hints=NoHint)
Ctor initialize directory, fstype and sizes.
bool growonly
hint for growonly partitions (e.g. snapshotting btrfs)
bool operator<(const MountPoint &rhs) const
Sort by directory name.
ByteCount usedAfterCommit() const
Used size after installation as ByteCount for convenience.
friend std::ostream & operator<<(std::ostream &str, const MountPoint &obj)
std::string fstype
Filesystem type (provided by detectMountPoints)
ByteCount totalSize() const
Total size of the filesystem as ByteCount for convenience.
To Solvable transform functor.
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
#define ZYPP_DECLARE_OPERATORS_FOR_FLAGS(Name)