]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgcachegen.h
DumpAvail works and apt-cache is complete
[apt.git] / apt-pkg / pkgcachegen.h
index 1385ab964ab9c5c1066df5c0624f804685fa27fd..a2eab8d43662856a37d176e03f3e92e80c02fd54 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: pkgcachegen.h,v 1.1 1998/07/02 02:58:13 jgg Exp $
+// $Id: pkgcachegen.h,v 1.6 1998/07/19 04:22:03 jgg Exp $
 /* ######################################################################
    
    Package Cache Generator - Generator for the cache structure.
 #ifndef PKGLIB_PKGCACHEGEN_H
 #define PKGLIB_PKGCACHEGEN_H
 
-#include <pkglib/pkgcache.h>
+#ifdef __GNUG__
+#pragma interface "apt-pkg/pkgcachegen.h"
+#endif 
+
+#include <apt-pkg/pkgcache.h>
 
 class pkgCacheGenerator
 {
@@ -29,10 +33,13 @@ class pkgCacheGenerator
    string PkgFileName;
    pkgCache::PackageFile *CurrentFile;
    
-   bool NewPackage(pkgCache::PkgIterator Pkg,string Pkg);
-   bool NewFileVer(pkgCache::VerIterator Ver,ListParser &List);
-   unsigned long NewVersion(pkgCache::VerIterator &Ver,unsigned long Next);
+   bool NewPackage(pkgCache::PkgIterator &Pkg,string Pkg);
+   bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List);
+   unsigned long NewVersion(pkgCache::VerIterator &Ver,string VerStr,unsigned long Next);
 
+   unsigned long WriteUniqString(const char *S,unsigned int Size);
+   inline unsigned long WriteUniqString(string S) {return WriteUniqString(S);};
+   
    public:
    
    // This is the abstract package list parser class.
@@ -43,25 +50,36 @@ class pkgCacheGenerator
       
       protected:
       
+      inline unsigned long WriteUniqString(string S) {return Owner->WriteUniqString(S);};
+      inline unsigned long WriteUniqString(const char *S,unsigned int Size) {return Owner->WriteUniqString(S,Size);};
       inline unsigned long WriteString(string S) {return Owner->Map.WriteString(S);};
       inline unsigned long WriteString(const char *S,unsigned int Size) {return Owner->Map.WriteString(S,Size);};
-
+      bool NewDepends(pkgCache::VerIterator Ver,string Package,
+                        string Version,unsigned int Op,
+                        unsigned int Type);
+      bool NewProvides(pkgCache::VerIterator Ver,string Package,string Version);
+      
       public:
       
       // These all operate against the current section
       virtual string Package() = 0;
       virtual string Version() = 0;
       virtual bool NewVersion(pkgCache::VerIterator Ver) = 0;
-      virtual bool NewPackage(pkgCache::PkgIterator Pkg) = 0;
-      virtual bool UsePackage(pkgCache::PkgIterator Pkg) = 0;
+      virtual bool UsePackage(pkgCache::PkgIterator Pkg,
+                             pkgCache::VerIterator Ver) = 0;
+      virtual unsigned long Offset() = 0;
+      virtual unsigned long Size() = 0;
       
       virtual bool Step() = 0;
+      
+      virtual ~ListParser() {};
    };
    friend ListParser;
 
    bool SelectFile(string File,unsigned long Flags = 0);
    bool MergeList(ListParser &List);
-   
+   inline pkgCache &GetCache() {return Cache;};
+      
    pkgCacheGenerator(DynamicMMap &Map);
    ~pkgCacheGenerator();
 };