libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
DiskUsageCounter.h
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
12
#ifndef ZYPP_DISKUSAGE_COUNTER_H
13
#define ZYPP_DISKUSAGE_COUNTER_H
14
15
#include "
zypp/ResPool.h
"
16
17
#include <set>
18
#include <string>
19
#include <iosfwd>
20
22
namespace
zypp
23
{
24
25
class
DiskUsageCounter
26
{
27
28
public
:
29
33
struct
MountPoint
34
{
38
std::string
dir
;
39
43
long
long
block_size
;
44
48
long
long
total_size
;
49
53
long
long
used_size
;
54
58
mutable
long
long
pkg_size
;
59
60
bool
readonly
;
61
65
MountPoint
(std::string d =
"/"
,
long
long
bs = 0LL,
long
long
total = 0LL,
long
long
used = 0LL,
long
long
pkg = 0LL,
bool
ro=
false
) :
66
dir
(d),
block_size
(bs),
total_size
(total),
used_size
(used),
pkg_size
(pkg),
readonly
(ro)
67
{}
68
69
// sort by directory name
70
bool
operator<
(
const
MountPoint
& rhs )
const
71
{
72
return
dir
< rhs.
dir
;
73
}
74
75
ByteCount
blockSize
()
const
76
{
return
ByteCount
(
block_size
,
ByteCount::B
); }
77
78
ByteCount
totalSize
()
const
79
{
return
ByteCount
(
total_size
,
ByteCount::K
); }
80
81
ByteCount
usedSize
()
const
82
{
return
ByteCount
(
used_size
,
ByteCount::K
); }
83
84
ByteCount
freeSize
()
const
85
{
return
ByteCount
(
total_size
-
used_size
,
ByteCount::K
); }
86
87
ByteCount
usedAfterCommit
()
const
88
{
return
ByteCount
(
pkg_size
,
ByteCount::K
); }
89
90
ByteCount
freeAfterCommit
()
const
91
{
return
ByteCount
(
total_size
-
pkg_size
,
ByteCount::K
); }
92
93
ByteCount
commitDiff
()
const
94
{
return
ByteCount
(
pkg_size
-
used_size
,
ByteCount::K
); }
95
};
96
97
typedef
std::set<MountPoint>
MountPointSet
;
98
99
DiskUsageCounter
()
100
{}
101
102
DiskUsageCounter
(
const
MountPointSet
& m )
103
:
mps
( m )
104
{}
105
106
bool
setMountPoints
(
const
MountPointSet
& m )
107
{
108
mps
= m;
109
return
true
;
110
}
111
112
const
MountPointSet
&
getMountPoints
()
const
113
{
114
return
mps
;
115
}
116
117
static
MountPointSet
detectMountPoints
(
const
std::string &rootdir =
"/"
);
118
119
static
MountPointSet
justRootPartition
();
120
124
MountPointSet
disk_usage
(
const
ResPool
& pool );
125
129
MountPointSet
disk_usage
(
sat::Solvable
solv_r );
131
MountPointSet
disk_usage
(
const
PoolItem
& pi_r )
132
{
return
disk_usage
( pi_r.
satSolvable
() ); }
134
MountPointSet
disk_usage
(
const
ResObject::constPtr
& obj_r )
135
{
136
if
( ! obj_r )
137
return
MountPointSet
();
138
return
disk_usage
( obj_r->satSolvable() );
139
}
140
141
private
:
142
143
MountPointSet
mps
;
144
};
146
148
std::ostream &
operator<<
( std::ostream & str,
const
DiskUsageCounter::MountPoint
& obj );
149
151
}
// namespace zypp
153
#endif // ZYPP_DISKUSAGE_COUNTER_H
zypp
DiskUsageCounter.h
Generated by
1.8.1