class TransferStatus
{
public:
+ enum Status { RUNNING, COMPLETED, ABORT, ERROR };
+
+public:
TransferId id;
+ Status status;
int dltotal;
int dlnow;
int ultotal;
int ulnow;
+ std::function<void ()> callback;
TransferStatus(TransferId id_) :
id(id_),
+ status(RUNNING),
dltotal(0),
dlnow(0),
ultotal(0),
- ulnow(0)
+ ulnow(0),
+ callback()
{}
+
+ void then(const std::function<void ()>& callback_)
+ {
+ callback = callback_;
+ }
};
typedef std::shared_ptr<TransferStatus> TransferStatusPtr;
class Downloader
{
-public:
-
private:
CURLM* m_multi_handle;
std::vector<std::unique_ptr<Transfer> > m_transfers;