[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/sysadmin/libqapt/src
From: Jonathan Michael Thomas <echidnaman () kubuntu ! org>
Date: 2010-12-22 15:51:28
Message-ID: 20101222155128.AB9EAAC8AB () svn ! kde ! org
[Download RAW message or body]
SVN commit 1208629 by jmthomas:
Re-apply the packageCacheFile port from revision 1191219 with a few changes to fix \
regressions that led to that revision's reversion. We have saved ~50 lines of code \
and are no longer rolling our own APT cache code.
M +12 -45 cache.cpp
--- trunk/extragear/sysadmin/libqapt/src/cache.cpp #1208628:1208629
@@ -22,12 +22,10 @@
#include <QtCore/QCoreApplication>
-#include <apt-pkg/depcache.h>
-#include <apt-pkg/error.h>
-#include <apt-pkg/sourcelist.h>
-#include <apt-pkg/pkgcachegen.h>
-#include <apt-pkg/policy.h>
+#include <apt-pkg/cachefile.h>
+#include <unistd.h>
+
namespace QApt {
class CacheBuildProgress : public OpProgress
@@ -45,33 +43,20 @@
{
public:
CachePrivate()
- : mmap(0)
- , cache(0)
- , policy(0)
- , depCache(0)
- , list(new pkgSourceList)
+ : cache(0)
, trustCache(new QHash<pkgCache::PkgFileIterator, pkgIndexFile*>)
{
}
virtual ~CachePrivate()
{
- delete list;
delete cache;
- delete policy;
- delete depCache;
- delete mmap;
delete trustCache;
}
- CacheBuildProgress m_progressMeter;
- MMap *mmap;
-
- pkgCache *cache;
- pkgPolicy *policy;
-
+ CacheBuildProgress progressMeter;
+ pkgCacheFile *cache;
pkgDepCache *depCache;
- pkgSourceList *list;
QHash<pkgCache::PkgFileIterator, pkgIndexFile*> *trustCache;
};
@@ -94,41 +79,23 @@
// delete any old structures
delete d->cache;
d->cache = 0;
-
- delete d->policy;
- d->policy = 0;
-
- delete d->depCache;
d->depCache = 0;
- delete d->mmap;
- d->mmap = 0;
+ bool shouldLock = (geteuid == 0);
+ d->cache = new pkgCacheFile();
+
// Read the sources list
- if (!d->list->ReadMainList()) {
+ if (!d->cache->Open(&d->progressMeter, shouldLock)) {
return false;
}
- pkgMakeStatusCache(*(d->list), d->m_progressMeter, &(d->mmap), true);
- d->m_progressMeter.Done();
if (_error->PendingError()) {
return false;
}
- // Open the cache file
- d->cache = new pkgCache(d->mmap);
- d->policy = new pkgPolicy(d->cache);
- if (!ReadPinFile(*(d->policy)) || !ReadPinDir(*(d->policy))) {
- return false;
- }
+ d->depCache = *d->cache;
- if (_error->PendingError()) {
- return false;
- }
-
- d->depCache = new pkgDepCache(d->cache, d->policy);
- d->depCache->Init(&(d->m_progressMeter));
-
d->trustCache->clear();
if (d->depCache->DelCount() != 0 || d->depCache->InstCount() != 0) {
@@ -149,7 +116,7 @@
{
Q_D(const Cache);
- return d->list;
+ return d->cache->GetSourceList();
}
QHash<pkgCache::PkgFileIterator, pkgIndexFile*> *Cache::trustCache() const
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic