]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/metaindex.h
newer gcc versions seems to have no problem with that, but while working
[apt.git] / apt-pkg / metaindex.h
index 8ebf23541e0470d55565c802b9fe53cd653cdfee..5783735ff32e9925247c699438cdcc38ec423299 100644 (file)
@@ -1,18 +1,17 @@
 #ifndef PKGLIB_METAINDEX_H
 #define PKGLIB_METAINDEX_H
 
-/* #ifdef __GNUG__ */
-/* #pragma interface "apt-pkg/metaindex.h" */
-/* #endif */
 
 #include <string>
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/indexfile.h>
+
+#ifndef APT_8_CLEANER_HEADERS
 #include <apt-pkg/srcrecords.h>
 #include <apt-pkg/pkgrecords.h>
-#include <apt-pkg/indexfile.h>
 #include <apt-pkg/vendor.h>
-    
 using std::string;
+#endif
 
 class pkgAcquire;
 class pkgCacheGenerator;
@@ -21,28 +20,38 @@ class OpProgress;
 class metaIndex
 {
    protected:
-   vector <pkgIndexFile *> *Indexes;
+   std::vector <pkgIndexFile *> *Indexes;
    const char *Type;
-   string URI;
-   string Dist;
+   std::string URI;
+   std::string Dist;
    bool Trusted;
 
    public:
 
    
    // Various accessors
-   virtual string GetURI() const {return URI;}
-   virtual string GetDist() const {return Dist;}
+   virtual std::string GetURI() const {return URI;}
+   virtual std::string GetDist() const {return Dist;}
    virtual const char* GetType() const {return Type;}
 
    // Interface for acquire
-   virtual string ArchiveURI(string /*File*/) const = 0;
-   virtual bool GetIndexes(pkgAcquire *Owner, bool GetAll=false) const = 0;
+   virtual std::string ArchiveURI(std::string const& /*File*/) const = 0;
+   virtual bool GetIndexes(pkgAcquire *Owner, bool const &GetAll=false) const = 0;
    
-   virtual vector<pkgIndexFile *> *GetIndexFiles() = 0; 
+   virtual std::vector<pkgIndexFile *> *GetIndexFiles() = 0; 
    virtual bool IsTrusted() const = 0;
 
-   virtual ~metaIndex() {};
+   metaIndex(std::string const &URI, std::string const &Dist, char const * const Type) :
+               Indexes(NULL), Type(Type), URI(URI), Dist(Dist) {
+   }
+
+   virtual ~metaIndex() {
+      if (Indexes == 0)
+        return;
+      for (std::vector<pkgIndexFile *>::iterator I = (*Indexes).begin(); I != (*Indexes).end(); ++I)
+        delete *I;
+      delete Indexes;
+   }
 };
 
 #endif