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
plaindir
RepoParser.cc
RepoParser.h
susetags
ws
xml
yum
HistoryLogReader.cc
HistoryLogReader.h
IniDict.cc
IniDict.h
IniParser.cc
IniParser.h
ParseException.cc
ParseException.h
ParserProgress.h
ProductFileReader.cc
ProductFileReader.h
RepoFileReader.cc
RepoFileReader.h
RepoindexFileReader.cc
RepoindexFileReader.h
ServiceFileReader.cc
ServiceFileReader.h
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
RepoParser.cc
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
9
10
#include <iostream>
11
#include "
zypp/base/Logger.h
"
12
#include "
zypp/base/String.h
"
13
14
#include "
zypp/PathInfo.h
"
15
16
#include "
zypp/parser/plaindir/RepoParser.h
"
17
18
using
std::endl;
19
21
namespace
zypp
22
{
23
24
namespace
parser
25
{
26
27
namespace
plaindir
28
{
29
30
static
void
recursive_timestamp
(
const
Pathname &dir, time_t & max )
31
{
32
std::list<std::string> dircontent;
33
if
(
filesystem::readdir
( dircontent, dir,
false
/*no dots*/
) != 0 )
34
return
;
// readdir logged the error
35
36
for_
( it, dircontent.begin(), dircontent.end() )
37
{
38
PathInfo pi( dir + *it, PathInfo::LSTAT );
39
if
( pi.isDir() )
40
{
41
recursive_timestamp
( pi.path(), max );
42
if
( pi.mtime() > max )
43
max = pi.mtime();
44
}
45
}
46
}
47
48
RepoStatus
dirStatus
(
const
Pathname &dir )
49
{
50
time_t t = 0;
51
PathInfo pi(dir);
52
if
( pi.isDir() )
53
{
54
t = pi.mtime();
55
recursive_timestamp
(dir,t);
56
}
57
RepoStatus
status;
58
status.
setTimestamp
(
Date
(t));
59
status.
setChecksum
(
str::numstring
(t));
60
return
status;
61
}
62
64
}
// namespace plaindir
67
}
// namespace parser
70
}
// namespace zypp
zypp
parser
plaindir
RepoParser.cc
Generated by
1.8.1