commit 58eb823e68fd607ca679febf74a5f90a40fa5c4c
parent feac9a26ef6b432ac374775d2e8ab4311ede35c2
Author: cfillion <cfillion@users.noreply.github.com>
Date: Mon, 6 Feb 2017 16:43:17 -0500
download: more refactoring
Diffstat:
2 files changed, 7 insertions(+), 18 deletions(-)
diff --git a/src/download.cpp b/src/download.cpp
@@ -76,15 +76,14 @@ size_t Download::WriteData(char *ptr, size_t rawsize, size_t nmemb, void *data)
int Download::UpdateProgress(void *ptr, const double, const double,
const double, const double)
{
- return static_cast<Download *>(ptr)->isAborted();
+ return static_cast<Download *>(ptr)->m_abort;
}
Download::Download(const string &name, const string &url,
const NetworkOpts &opts, const int flags)
- : m_name(name), m_url(url), m_opts(opts), m_flags(flags)
+ : m_name(name), m_url(url), m_opts(opts), m_flags(flags),
+ m_state(Idle), m_abort(false)
{
- reset();
-
DownloadNotifier::get()->start();
}
@@ -93,13 +92,6 @@ Download::~Download()
DownloadNotifier::get()->stop();
}
-void Download::reset()
-{
- m_state = Idle;
- m_aborted = false;
- m_contents.clear();
-}
-
void Download::setState(const State state)
{
m_state = state;
@@ -134,7 +126,7 @@ void Download::exec(CURL *curl)
DownloadNotifier::get()->notify({this, state});
};
- if(isAborted()) {
+ if(m_abort) {
finish(Aborted, "cancelled");
return;
}
@@ -163,7 +155,7 @@ void Download::exec(CURL *curl)
const CURLcode res = curl_easy_perform(curl);
- if(isAborted())
+ if(m_abort)
finish(Aborted, "aborted by user");
else if(res != CURLE_OK) {
const auto err = format("%s (%d): %s") % curl_easy_strerror(res) % res % errbuf;
diff --git a/src/download.hpp b/src/download.hpp
@@ -65,14 +65,13 @@ public:
void setState(State);
State state() const { return m_state; }
const std::string &contents() { return m_contents; }
- bool isAborted() { return m_aborted; }
void onStart(const VoidSignal::slot_type &slot) { m_onStart.connect(slot); }
void onFinish(const VoidSignal::slot_type &slot) { m_onFinish.connect(slot); }
void setCleanupHandler(const CleanupHandler &cb) { m_cleanupHandler = cb; }
void start();
- void abort() { m_aborted = true; }
+ void abort() { m_abort = true; }
void exec(CURL *);
@@ -80,15 +79,13 @@ private:
static size_t WriteData(char *, size_t, size_t, void *);
static int UpdateProgress(void *, double, double, double, double);
- void reset();
-
std::string m_name;
std::string m_url;
NetworkOpts m_opts;
int m_flags;
State m_state;
- std::atomic_bool m_aborted;
+ std::atomic_bool m_abort;
std::string m_contents;
VoidSignal m_onStart;