]>
Commit | Line | Data |
---|---|---|
1 | // -*- mode: cpp; mode: fold -*- | |
2 | // Description /*{{{*/// $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ | |
3 | // $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ | |
4 | /* ###################################################################### | |
5 | ||
6 | MIRROR Aquire Method - This is the MIRROR aquire method for APT. | |
7 | ||
8 | ##################################################################### */ | |
9 | /*}}}*/ | |
10 | ||
11 | #ifndef APT_MIRROR_H | |
12 | #define APT_MIRROR_H | |
13 | ||
14 | #include <iostream> | |
15 | #include <string> | |
16 | #include <vector> | |
17 | ||
18 | using std::cout; | |
19 | using std::cerr; | |
20 | using std::endl; | |
21 | ||
22 | #include "http.h" | |
23 | ||
24 | class MirrorMethod : public HttpMethod | |
25 | { | |
26 | FetchResult Res; | |
27 | // we simply transform between BaseUri and Mirror | |
28 | std::string BaseUri; // the original mirror://... url | |
29 | std::string Mirror; // the selected mirror uri (http://...) | |
30 | std::vector<std::string> AllMirrors; // all available mirrors | |
31 | std::string MirrorFile; // the file that contains the list of mirrors | |
32 | bool DownloadedMirrorFile; // already downloaded this session | |
33 | std::string Dist; // the target distrubtion (e.g. sid, oneiric) | |
34 | ||
35 | bool Debug; | |
36 | ||
37 | protected: | |
38 | bool DownloadMirrorFile(std::string uri); | |
39 | bool RandomizeMirrorFile(std::string file); | |
40 | std::string GetMirrorFileName(std::string uri); | |
41 | bool InitMirrors(); | |
42 | bool TryNextMirror(); | |
43 | void CurrentQueueUriToMirror(); | |
44 | bool Clean(std::string dir); | |
45 | ||
46 | // we need to overwrite those to transform the url back | |
47 | virtual void Fail(std::string Why, bool Transient = false); | |
48 | virtual void URIStart(FetchResult &Res); | |
49 | virtual void URIDone(FetchResult &Res,FetchResult *Alt = 0); | |
50 | virtual bool Configuration(std::string Message); | |
51 | ||
52 | public: | |
53 | MirrorMethod(); | |
54 | virtual bool Fetch(FetchItem *Itm); | |
55 | }; | |
56 | ||
57 | ||
58 | #endif |