]> git.ipfire.org Git - thirdparty/squid.git/blame - src/Downloader.h
Fetch missing certificates.
[thirdparty/squid.git] / src / Downloader.h
CommitLineData
55369ae6
AR
1#ifndef SQUID_DOWNLOADER_H
2#define SQUID_DOWNLOADER_H
3
4#include "client_side.h"
5#include "cbdata.h"
6
7class Downloader: public ConnStateData
8{
9 CBDATA_CLASS(Downloader);
10 // XXX CBDATA_CLASS expands to nonvirtual toCbdata, AsyncJob::toCbdata
11 // is pure virtual. breaks build on clang if override is used
12
13public:
14 class CbDialer {
15 public:
16 CbDialer(): status(Http::scNone) {}
17 virtual ~CbDialer() {}
18 SBuf object;
19 Http::StatusCode status;
20 };
21
22 explicit Downloader(SBuf &url, const MasterXaction::Pointer &xact, AsyncCall::Pointer &aCallback);
23 virtual ~Downloader();
24 void downloadFinished();
25
26 /* ConnStateData API */
27 virtual bool isOpen() const;
28
29 /* AsyncJob API */
30 virtual void callException(const std::exception &e);
31 virtual bool doneAll() const;
32
33 /*Bodypipe API*/
34 virtual void noteMoreBodySpaceAvailable(BodyPipe::Pointer);
35 virtual void noteBodyConsumerAborted(BodyPipe::Pointer);
36
37protected:
38 /* ConnStateData API */
39 virtual ClientSocketContext *parseOneRequest();
40 virtual void processParsedRequest(ClientSocketContext *context);
41 virtual time_t idleTimeout() const;
42 virtual void writeControlMsgAndCall(ClientSocketContext *context, HttpReply *rep, AsyncCall::Pointer &call);
43 virtual void handleReply(HttpReply *header, StoreIOBuffer receivedData);
44
45 /* AsyncJob API */
46 virtual void start();
47
48private:
49 void callBack();
50 SBuf url_;
51 AsyncCall::Pointer callback;
52 Http::StatusCode status;
53 SBuf object; //object data
54 size_t maxObjectSize;
55};
56
57#endif