| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #ifndef APT_PRIVATE_CACHEFILE_H
- #define APT_PRIVATE_CACHEFILE_H
- #include <apt-pkg/cachefile.h>
- #include <apt-pkg/progress.h>
- #include <apt-pkg/configuration.h>
- #include <apt-pkg/pkgcache.h>
- #include <apt-pkg/macros.h>
- #include <apt-pkg/sourcelist.h>
- #include <apti18n.h>
- // FIXME: we need to find a way to export this
- class APT_PUBLIC SourceList : public pkgSourceList
- {
-
- public:
- // Add custom metaIndex (e.g. local files)
- void AddMetaIndex(metaIndex *mi) {
- SrcList.push_back(mi);
- }
- };
- // class CacheFile - Cover class for some dependency cache functions /*{{{*/
- // ---------------------------------------------------------------------
- /* */
- class APT_PUBLIC CacheFile : public pkgCacheFile
- {
- static pkgCache *SortCache;
- APT_HIDDEN static int NameComp(const void *a,const void *b) APT_PURE;
- public:
- pkgCache::Package **List;
-
- void Sort();
- bool CheckDeps(bool AllowBroken = false);
- bool BuildCaches(bool WithLock = true)
- {
- OpTextProgress Prog(*_config);
- if (pkgCacheFile::BuildCaches(&Prog,WithLock) == false)
- return false;
- return true;
- }
- // FIXME: this can go once the "libapt-pkg" pkgSourceList has a way
- // to add custom metaIndexes (or custom local files or so)
- bool BuildSourceList(OpProgress */*Progress*/ = NULL) {
- if (SrcList != NULL)
- return true;
- SrcList = new SourceList();
- if (SrcList->ReadMainList() == false)
- return _error->Error(_("The list of sources could not be read."));
- return true;
- }
- bool Open(bool WithLock = true)
- {
- OpTextProgress Prog(*_config);
- if (pkgCacheFile::Open(&Prog,WithLock) == false)
- return false;
- Sort();
-
- return true;
- };
- bool OpenForInstall()
- {
- if (_config->FindB("APT::Get::Print-URIs") == true)
- return Open(false);
- else
- return Open(true);
- }
- CacheFile() : List(0) {};
- ~CacheFile() {
- delete[] List;
- }
- };
- /*}}}*/
- #endif
|