From aaf677da5b62d3d0fdeb26f9b4c63fed544b63cd Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 7 May 2014 16:41:25 +0200 Subject: move pkgSourceList::AddMetaIndex() into a private subclass until we decide about a good API --- apt-pkg/sourcelist.h | 15 +++++++++------ apt-private/private-cachefile.h | 23 +++++++++++++++++++++++ apt-private/private-install.cc | 4 +++- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/apt-pkg/sourcelist.h b/apt-pkg/sourcelist.h index cdf8d9762..99e83f454 100644 --- a/apt-pkg/sourcelist.h +++ b/apt-pkg/sourcelist.h @@ -52,7 +52,15 @@ class pkgAcquire; class pkgIndexFile; class metaIndex; -class pkgSourceList +class pkgSource +{ + protected: + + std::vector SrcList; + +}; + +class pkgSourceList : public pkgSource { public: @@ -116,11 +124,6 @@ class pkgSourceList // query last-modified time time_t GetLastModifiedTime(); - // Add custom metaIndex (e.g. local files) - void AddMetaIndex(metaIndex *mi) { - SrcList.push_back(mi); - } - pkgSourceList(); pkgSourceList(std::string File); ~pkgSourceList(); diff --git a/apt-private/private-cachefile.h b/apt-private/private-cachefile.h index dce7e0a3a..1fddabfbd 100644 --- a/apt-private/private-cachefile.h +++ b/apt-private/private-cachefile.h @@ -6,7 +6,20 @@ #include #include #include +#include +#include +// 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 /*{{{*/ // --------------------------------------------------------------------- @@ -28,6 +41,16 @@ class APT_PUBLIC CacheFile : public pkgCacheFile 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); diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index e7606a1d1..35649fcdb 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -685,7 +685,9 @@ bool DoInstall(CommandLine &CmdL) std::map Options; if(Type->CreateItem(List, *I, "", "", Options)) { - pkgSourceList *sources = Cache.GetSourceList(); + // we have our own CacheFile that gives us a SourceList + // with superpowerz + SourceList *sources = (SourceList*)Cache.GetSourceList(); sources->AddMetaIndex(List[0]); } } -- cgit v1.2.3