]> git.saurik.com Git - apt.git/blobdiff - methods/mirror.h
* apt-pkg/deb/dpkgpm.cc:
[apt.git] / methods / mirror.h
index ca34288309829c8843ae293d9df560c8b86a1fbc..1b506dc871c64705c5be8bcf5a825a2f0fcf9195 100644 (file)
@@ -20,17 +20,31 @@ using std::endl;
 
 #include "http.h"
 
-class MirrorMethod : public pkgAcqMethod
+class MirrorMethod : public HttpMethod
 {
    FetchResult Res;
-   string Mirror;
-   string BaseUri;
-   string MirrorFile;
-   bool HasMirrorFile;
+   // we simply transform between BaseUri and Mirror
+   string BaseUri;    // the original mirror://... url
+   string Mirror;     // the selected mirror uri (http://...)
+   vector<string> AllMirrors; // all available mirrors
+   string MirrorFile; // the file that contains the list of mirrors
+   bool DownloadedMirrorFile; // already downloaded this session
+
+   bool Debug;
 
  protected:
-   bool GetMirrorFile(string uri);
-   bool SelectMirror();
+   bool DownloadMirrorFile(string uri);
+   string GetMirrorFileName(string uri);
+   bool InitMirrors();
+   bool SelectNextMirror();
+   bool Clean(string dir);
+   
+   // we need to overwrite those to transform the url back
+   virtual void Fail(string Why, bool Transient = false);
+   virtual void URIStart(FetchResult &Res);
+   virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0);
+   virtual bool Configuration(string Message);
+
  public:
    MirrorMethod();
    virtual bool Fetch(FetchItem *Itm);