warning: cast from type A to type B casts away qualifiers [-Wcast-qual]
[apt.git] / methods / mirror.h
index ed817806bd70b0a57b583a7074c91f737a69f842..1dd9f2ec64bd34067ce0fc2591d391e9cacd3d20 100644 (file)
@@ -3,7 +3,7 @@
 // $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $
 /* ######################################################################
 
 // $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $
 /* ######################################################################
 
-   MIRROR Aquire Method - This is the MIRROR aquire method for APT.
+   MIRROR Acquire Method - This is the MIRROR acquire method for APT.
 
    ##################################################################### */
                                                                        /*}}}*/
 
    ##################################################################### */
                                                                        /*}}}*/
@@ -11,8 +11,9 @@
 #ifndef APT_MIRROR_H
 #define APT_MIRROR_H
 
 #ifndef APT_MIRROR_H
 #define APT_MIRROR_H
 
-
 #include <iostream>
 #include <iostream>
+#include <string>
+#include <vector>
 
 using std::cout;
 using std::cerr;
 
 using std::cout;
 using std::cerr;
@@ -24,24 +25,29 @@ class MirrorMethod : public HttpMethod
 {
    FetchResult Res;
    // we simply transform between BaseUri and Mirror
 {
    FetchResult Res;
    // we simply transform between BaseUri and Mirror
-   string BaseUri;    // the original mirror://... url
-   string Mirror;     // the selected mirror uri (http://...)
-   string MirrorFile; // the file that contains the list of mirrors
+   std::string BaseUri;    // the original mirror://... url
+   std::string Mirror;     // the selected mirror uri (http://...)
+   std::vector<std::string> AllMirrors; // all available mirrors
+   std::string MirrorFile; // the file that contains the list of mirrors
    bool DownloadedMirrorFile; // already downloaded this session
    bool DownloadedMirrorFile; // already downloaded this session
+   std::string Dist;       // the target distrubtion (e.g. sid, oneiric)
 
    bool Debug;
 
  protected:
 
    bool Debug;
 
  protected:
-   bool DownloadMirrorFile(string uri);
-   string GetMirrorFileName(string uri);
-   bool SelectMirror();
-   bool Clean(string dir);
+   bool DownloadMirrorFile(std::string uri);
+   bool RandomizeMirrorFile(std::string file);
+   std::string GetMirrorFileName(std::string uri);
+   bool InitMirrors();
+   bool TryNextMirror();
+   void CurrentQueueUriToMirror();
+   bool Clean(std::string dir);
    
    // we need to overwrite those to transform the url back
    
    // we need to overwrite those to transform the url back
-   virtual void Fail(string Why, bool Transient = false);
+   virtual void Fail(std::string Why, bool Transient = false);
    virtual void URIStart(FetchResult &Res);
    virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0);
    virtual void URIStart(FetchResult &Res);
    virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0);
-   virtual bool Configuration(string Message);
+   virtual bool Configuration(std::string Message);
 
  public:
    MirrorMethod();
 
  public:
    MirrorMethod();