- better FindURI interface for repositories
authorPanu Matilainen <pmatilai@turre.koti.laiskiainen.org>
Wed, 25 Apr 2007 12:31:55 +0000 (15:31 +0300)
committerPanu Matilainen <pmatilai@turre.koti.laiskiainen.org>
Wed, 25 Apr 2007 12:31:55 +0000 (15:31 +0300)
apt-pkg/repository.h
apt-pkg/rpm/repomd.cc
apt-pkg/rpm/repomd.h
apt-pkg/rpm/rpmindexfile.cc

index a60f8e4..d20325b 100644 (file)
@@ -46,7 +46,7 @@ class pkgRepository
    virtual bool IsAuthenticated() const { return !FingerPrint.empty(); };
    virtual bool FindChecksums(string URI,off_t &Size, string &MD5);
    // Only used in repomd atm
-   virtual bool FindURI(string DataType, string &URI) {return false;};
+   virtual string FindURI(string DataType) {return "";};
    // LORG:2006-02-23 
    virtual string GetCheckMethod() {return CheckMethod;};
    
index ee56e73..b8facd6 100644 (file)
@@ -102,14 +102,13 @@ bool repomdRepository::ParseRelease(string File)
    return true;
 }
 
-bool repomdRepository::FindURI(string DataType, string &URI)
+string repomdRepository::FindURI(string DataType)
 {
-   bool found = false;
+   string Res = "";
    if (RepoFiles.find(DataType) != RepoFiles.end()) {
-        URI = RepoFiles[DataType].Path;
-        found = true;
+        Res = RepoFiles[DataType].Path;
    }
-   return found;
+   return Res;
 }
 
 
index cc973b4..f5ee23a 100644 (file)
@@ -36,7 +36,7 @@ class repomdRepository : public pkgRepository
 
    virtual bool IsAuthenticated() const { return false; };
    virtual bool ParseRelease(string File);
-   bool FindURI(string DataType, string &URI);
+   virtual string FindURI(string DataType);
    
    repomdRepository(string URI,string Dist, const pkgSourceList::Vendor *Vendor,
                 string RootURI)
index f70e0a0..0cf6e6f 100644 (file)
@@ -536,12 +536,10 @@ string rpmRepomdIndex::ArchiveURI(string File) const
 
 bool rpmRepomdIndex::HasDBExtension() const
 {
-   string TypeURI;
-   if (Repository->FindURI("primary_db", TypeURI)) {
+   if (! Repository->FindURI("primary_db").empty()) {
       return true;
-   } else {
-      return false;
-   }
+   } 
+   return false;
 }
 
 string rpmRepomdIndex::ArchiveInfo(pkgCache::VerIterator Ver) const
@@ -612,7 +610,6 @@ string rpmRepomdIndex::Info(string Type) const
 {
    string Info = ::URI::SiteOnly(URI) + ' ';
    string File;
-   Repository->FindURI(Type, File);
    assert( Dist.size() > 0 );
    if (Dist[Dist.size() - 1] == '/')
    {
@@ -622,7 +619,7 @@ string rpmRepomdIndex::Info(string Type) const
    else
       Info += Dist + '/' ;   
    Info += " ";
-   Info += flNotDir(File);
+   Info += flNotDir(Repository->FindURI(Type));
    return Info;
 }
 
@@ -633,8 +630,8 @@ string rpmRepomdIndex::IndexURI(string Type) const
    if (Dist[Dist.size() - 1] != '/') {
         Res += "/";
    }
-   string TypeURI;
-   if (Repository->FindURI(Type, TypeURI)) {
+   string TypeURI = Repository->FindURI(Type);
+   if (! TypeURI.empty()) {
       Res += TypeURI;
    } else {
       Res = "";
@@ -645,8 +642,7 @@ string rpmRepomdIndex::IndexURI(string Type) const
 
 string rpmRepomdIndex::AutoType(string Type) const
 {
-   string TypeURI;
-   if (Repository->FindURI(Type + "_db", TypeURI)) {
+   if (! Repository->FindURI(Type + "_db").empty()) {
       return Type + "_db";
    }
    return Type;
@@ -664,11 +660,10 @@ bool rpmRepomdIndex::GetReleases(pkgAcquire *Owner) const
 
 bool rpmRepomdIndex::GetIndexes(pkgAcquire *Owner) const
 {
-   string TypeURI;
    bool AcqOther = _config->FindB("Acquire::RepoMD::OtherData", false);
    bool AcqGroup = _config->FindB("Acquire::RepoMD::Group", false);
    bool Res = false;
-   if (! Repository->FindURI("primary", TypeURI)) {
+   if (Repository->FindURI("primary").empty()) {
       return _error->Error(_("Primary metadata not found in repository %s %s"),
                        Repository->URI.c_str(), Repository->Dist.c_str());
    }
@@ -683,8 +678,7 @@ bool rpmRepomdIndex::GetIndexes(pkgAcquire *Owner) const
    }
 
    if (Res && AcqGroup) {
-      string GroupURI;
-      if (Repository->FindURI("group", GroupURI)) {
+      if (! Repository->FindURI("group").empty()) {
         new pkgAcqIndex(Owner,Repository,IndexURI("group"),
                           ReleaseInfo("comps.xml"), "comps.xml");
       }