]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-method.h
Support for memory-only caching
[apt.git] / apt-pkg / acquire-method.h
index 74489913fa775325a931d2936ddc1393e0e0b513..6aabcb91d34aa8c60b9dad0577ef278c65f97fb1 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-method.h,v 1.1 1998/10/30 07:53:35 jgg Exp $
+// $Id: acquire-method.h,v 1.10 1999/01/27 02:48:52 jgg Exp $
 /* ######################################################################
 
    Acquire Method - Method helper class + functions
@@ -14,7 +14,7 @@
 #define PKGLIB_ACQUIRE_METHOD_H
 
 #include <apt-pkg/configuration.h>
-#include <strutl.h>
+#include <apt-pkg/strutl.h>
 
 #ifdef __GNUG__
 #pragma interface "apt-pkg/acquire-method.h"
 class pkgAcqMethod
 {
    protected:
-   
-   string CurrentURI;
-   string DestFile;
-   time_t LastModified;
 
-   vector<string> Messages;
+   struct FetchItem
+   {
+      FetchItem *Next;
+
+      string Uri;
+      string DestFile;
+      time_t LastModified;
+      bool IndexFile;
+   };
    
    struct FetchResult
    {
@@ -37,26 +41,37 @@ class pkgAcqMethod
       bool IMSHit;
       string Filename;
       unsigned long Size;
+      unsigned long ResumePoint;      
       FetchResult();
    };
-   
+
+   // State
+   vector<string> Messages;
+   FetchItem *Queue;
+   FetchItem *QueueBack;
+      
    // Handlers for messages
    virtual bool Configuration(string Message);
-   virtual bool Fetch(string Message,URI Get) {return true;};
+   virtual bool Fetch(FetchItem *Item) {return true;};
    
    // Outgoing messages
-   void Fail();
-   void Fail(string Why);
-//   void Log(const char *Format,...);
-   void URIStart(FetchResult &Res,unsigned long Resume = 0);
+   void Fail(bool Transient = false);
+   inline void Fail(const char *Why, bool Transient = false) {Fail(string(Why),Transient);};
+   void Fail(string Why, bool Transient = false);
+   void URIStart(FetchResult &Res);
    void URIDone(FetchResult &Res,FetchResult *Alt = 0);
-                
-   public:
+   bool MediaFail(string Required,string Drive);
    
-   enum CnfFlags {SingleInstance = (1<<0), PreScan = (1<<1), 
-                  Pipeline = (1<<2), SendConfig = (1<<3)};
+   public:
+
+   enum CnfFlags {SingleInstance = (1<<0),
+                  Pipeline = (1<<1), SendConfig = (1<<2),
+                  LocalOnly = (1<<3)};
 
-   int Run();
+   void Log(const char *Format,...);
+   void Status(const char *Format,...);
+   
+   int Run(bool Single = false);
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
    virtual ~pkgAcqMethod() {};