summaryrefslogtreecommitdiff
path: root/server/modules/downloaders
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2016-01-16 09:01:18 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2016-01-16 09:01:18 +0300
commitbb8cd8a9ff7d80046cc2c7d41742c74d8f811c62 (patch)
tree9353ecb0293fd89b8d08d893332ca7e912c3efa3 /server/modules/downloaders
parent454ed688836c9de52039b84ea381ffd22890a6e8 (diff)
i am alive )
updated copyrights (new year) server: started implementation of api for module events (module should be able to fire event which will be delivered to clients which have subscribed for this event type)
Diffstat (limited to 'server/modules/downloaders')
-rw-r--r--server/modules/downloaders/curl/include/curl_download.h24
-rw-r--r--server/modules/downloaders/curl/main.cpp2
-rw-r--r--server/modules/downloaders/curl/main.h2
-rw-r--r--server/modules/downloaders/curl/src/curl_download.cpp31
4 files changed, 51 insertions, 8 deletions
diff --git a/server/modules/downloaders/curl/include/curl_download.h b/server/modules/downloaders/curl/include/curl_download.h
index 6956ce4..514d4f2 100644
--- a/server/modules/downloaders/curl/include/curl_download.h
+++ b/server/modules/downloaders/curl/include/curl_download.h
@@ -1,11 +1,29 @@
+/*
+ Copyright © 2015-2016 Gluzskiy Alexandr (sss)
+
+ This file is part of Unknown Download Manager (UDM).
+
+ UDM is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ UDM is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with UDM. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
#ifndef CURL_DOWNLOAD_H
#define CURL_DOWNLOAD_H
#include <api_module_downloader.h>
#include <curl/curl.h>
-enum download_state {download_running, download_stopped};
-
class curl_download : public download_s
{
public:
@@ -27,7 +45,7 @@ class curl_download : public download_s
void perform_internal();
CURL *easy_handle = nullptr;
bool cancel_transfer = false;
- download_state state = download_stopped;
+ core_events::download_state state = core_events::download_stopped;
std::string download_path;
};
diff --git a/server/modules/downloaders/curl/main.cpp b/server/modules/downloaders/curl/main.cpp
index 1a5e02b..c21d8b3 100644
--- a/server/modules/downloaders/curl/main.cpp
+++ b/server/modules/downloaders/curl/main.cpp
@@ -1,6 +1,6 @@
/*
- Copyright © 2015 Gluzskiy Alexandr (sss)
+ Copyright © 2015-2016 Gluzskiy Alexandr (sss)
This file is part of Unknown Download Manager (UDM).
diff --git a/server/modules/downloaders/curl/main.h b/server/modules/downloaders/curl/main.h
index 7040d8b..85569f6 100644
--- a/server/modules/downloaders/curl/main.h
+++ b/server/modules/downloaders/curl/main.h
@@ -1,5 +1,5 @@
/*
- Copyright © 2015 Gluzskiy Alexandr (sss)
+ Copyright © 2015-2016 Gluzskiy Alexandr (sss)
This file is part of Unknown Download Manager (UDM).
diff --git a/server/modules/downloaders/curl/src/curl_download.cpp b/server/modules/downloaders/curl/src/curl_download.cpp
index 29bdc21..9df06a1 100644
--- a/server/modules/downloaders/curl/src/curl_download.cpp
+++ b/server/modules/downloaders/curl/src/curl_download.cpp
@@ -1,3 +1,23 @@
+/*
+ Copyright © 2015-2016 Gluzskiy Alexandr (sss)
+
+ This file is part of Unknown Download Manager (UDM).
+
+ UDM is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ UDM is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with UDM. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
#include "curl_download.h"
#include <boost/thread.hpp>
@@ -41,14 +61,14 @@ curl_download::curl_download(std::map<int, std::string> params, core_api *a)
bool curl_download::start()
{
boost::thread(boost::bind(&curl_download::perform_internal, this));
- state = download_running;
+ state = core_events::download_running;
return true; //TODO:
}
bool curl_download::stop()
{
cancel_transfer = true;
- state = download_stopped;
+ state = core_events::download_stopped;
return true; //TODO:
}
@@ -61,7 +81,12 @@ bool curl_download::delete_download()
void curl_download::perform_internal()
{
- curl_easy_perform(easy_handle);
+ auto status = curl_easy_perform(easy_handle);
+ if(status != CURLE_OK)
+ state = core_events::download_error;
+ else
+ state = core_events::download_completed;
+ //TODO: fire event
}
curl_download::~curl_download()