X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Faddon%2Fdownloader.hpp;h=6e7e48266feeeaaf2b5fcc3e0c75b31a6a345085;hb=73cb1e168850018eaa821a42b30bb221dc5186fe;hp=28f2313c488cdbc8c28ceb23414f9c7f2dfbf0f8;hpb=0d9d135fa4b1c62a054b362528a19dab15e8d96d;p=supertux.git diff --git a/src/addon/downloader.hpp b/src/addon/downloader.hpp index 28f2313c4..6e7e48266 100644 --- a/src/addon/downloader.hpp +++ b/src/addon/downloader.hpp @@ -26,33 +26,48 @@ #include typedef int TransferId; +class Downloader; class TransferStatus { public: + Downloader& m_downloader; TransferId id; + std::vector > callbacks; + int dltotal; int dlnow; int ultotal; int ulnow; - TransferStatus(TransferId id_) : + std::string error_msg; + + TransferStatus(Downloader& downloader, TransferId id_) : + m_downloader(downloader), id(id_), + callbacks(), dltotal(0), dlnow(0), ultotal(0), - ulnow(0) + ulnow(0), + error_msg() {} + + void abort(); + void update(); + + void then(const std::function& callback) + { + callbacks.push_back(callback); + } }; -typedef std::shared_ptr TransferStatusPtr; +using TransferStatusPtr = std::shared_ptr; class Transfer; class Downloader { -public: - private: CURLM* m_multi_handle; std::vector > m_transfers;