X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/5f6b130d6342965bfa49beb9413bdf742440b8ab..8279242457d9be370f7a6f9337085d38506e967b:/methods/mirror.h?ds=sidebyside diff --git a/methods/mirror.h b/methods/mirror.h index ca3428830..6ebe08e6b 100644 --- a/methods/mirror.h +++ b/methods/mirror.h @@ -1,9 +1,8 @@ // -*- mode: cpp; mode: fold -*- -// Description /*{{{*/// $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 $ +// Description /*{{{*/ /* ###################################################################### - MIRROR Aquire Method - This is the MIRROR aquire method for APT. + MIRROR Acquire Method - This is the MIRROR acquire method for APT. ##################################################################### */ /*}}}*/ @@ -11,8 +10,9 @@ #ifndef APT_MIRROR_H #define APT_MIRROR_H - #include +#include +#include using std::cout; using std::cerr; @@ -20,20 +20,37 @@ 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 + std::string BaseUri; // the original mirror://... url + std::string Mirror; // the selected mirror uri (http://...) + std::vector AllMirrors; // all available mirrors + std::string MirrorFile; // the file that contains the list of mirrors + bool DownloadedMirrorFile; // already downloaded this session + std::string Dist; // the target distrubtion (e.g. sid, oneiric) + + bool Debug; protected: - bool GetMirrorFile(string uri); - bool SelectMirror(); + 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 + virtual void Fail(std::string Why, bool Transient = false) APT_OVERRIDE; + virtual void URIStart(FetchResult &Res) APT_OVERRIDE; + virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0) APT_OVERRIDE; + virtual bool Configuration(std::string Message) APT_OVERRIDE; + public: MirrorMethod(); - virtual bool Fetch(FetchItem *Itm); + virtual bool Fetch(FetchItem *Itm) APT_OVERRIDE; };