libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libzypp
Welcome to libzypp
Code Pitfalls - Frequently made mistakes
Code Snippets
Environment Variables
Testing for provided features.
Notes on revisions
Extending ZYpp: Plugins and Hooks
Services
Solver - Vendor protection
Writing and tunning testcases
Libzypp and threads
Todo List
Deprecated List
Modules
Namespaces
Classes
Files
File List
zypp
base
media
misc
parser
pool
repo
sat
solver
target
thread
ui
url
ws
zypp_detail
APIConfig.h
Arch.cc
Arch.h
AutoDispose.h
Bit.h
ByteCount.cc
ByteCount.h
Callback.h
Capabilities.cc
Capabilities.h
Capability.cc
Capability.h
CapMatch.cc
CapMatch.h
Changelog.cc
Changelog.h
CheckSum.cc
CheckSum.h
CountryCode.cc
CountryCode.h
Date.cc
Date.h
Dep.cc
Dep.h
Digest.cc
Digest.h
DiskUsage.cc
DiskUsage.h
DiskUsageCounter.cc
DiskUsageCounter.h
DownloadMode.cc
DownloadMode.h
Edition.cc
Edition.h
ExternalProgram.cc
ExternalProgram.h
Fetcher.cc
Fetcher.h
FileChecker.cc
FileChecker.h
Filter.h
Glob.cc
Glob.h
HistoryLog.cc
HistoryLog.h
HistoryLogData.cc
HistoryLogData.h
IdString.cc
IdString.h
IdStringType.h
InstanceId.cc
InstanceId.h
KeyContext.h
KeyRing.cc
KeyRing.h
KVMap.h
LanguageCode.cc
LanguageCode.h
Locale.cc
Locale.h
Locks.cc
Locks.h
ManagedFile.h
MediaProducts.cc
MediaProducts.h
MediaSetAccess.cc
MediaSetAccess.h
Misc.h
OnMediaLocation.cc
OnMediaLocation.h
Package.cc
Package.h
PackageKeyword.h
Patch.cc
Patch.h
PathInfo.cc
PathInfo.h
Pathname.cc
Pathname.h
Pattern.cc
Pattern.h
PluginFrame.cc
PluginFrame.h
PluginFrameException.cc
PluginFrameException.h
PluginScript.cc
PluginScript.h
PluginScriptException.cc
PluginScriptException.h
PoolItem.cc
PoolItem.h
PoolItemBest.cc
PoolItemBest.h
PoolQuery.cc
PoolQuery.h
PoolQueryResult.cc
PoolQueryResult.h
PoolQueryUtil.tcc
ProblemSolution.cc
ProblemSolution.h
ProblemTypes.h
Product.cc
Product.h
ProgressData.cc
ProgressData.h
ProvideFilePolicy.cc
ProvideFilePolicy.h
PublicKey.cc
PublicKey.h
Range.cc
Range.h
Rel.cc
Rel.h
RelCompare.h
RepoInfo.cc
RepoInfo.h
RepoManager.cc
RepoManager.h
Repository.cc
Repository.h
RepoStatus.cc
RepoStatus.h
ResFilters.h
ResKind.cc
ResKind.h
ResObject.cc
ResObject.h
ResObjects.h
Resolvable.cc
Resolvable.h
Resolver.cc
Resolver.h
ResolverProblem.cc
ResolverProblem.h
ResPool.cc
ResPool.h
ResPoolProxy.cc
ResPoolProxy.h
ResStatus.cc
ResStatus.h
ResTraits.h
ServiceInfo.cc
ServiceInfo.h
Signature.cc
Signature.h
SrcPackage.cc
SrcPackage.h
SysContent.cc
SysContent.h
Target.cc
Target.h
TmpPath.cc
TmpPath.h
TriBool.h
Url.cc
Url.h
Vendor.h
VendorAttr.cc
VendorAttr.h
VendorSupportOptions.cc
VendorSupportOptions.h
ZConfig.cc
ZConfig.h
ZYpp.cc
ZYpp.h
ZYppCallbacks.h
ZYppCommit.h
ZYppCommitPolicy.cc
ZYppCommitPolicy.h
ZYppCommitResult.cc
ZYppCommitResult.h
ZYppFactory.cc
ZYppFactory.h
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