diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-08-25 13:17:30 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-08-25 13:17:30 +0300 |
commit | 1fdf82ec8346c12d19c9a013080ca4c26a3cb6d6 (patch) | |
tree | d50030c765ed83ebf49557c1a0c8ca1f38b0d4c9 /server/modules/downloaders/curl/main.cpp | |
parent | 493733c837eb74b902e3db1521689fb8f088f6d1 (diff) |
protocol:
use int32 instead of strings for id's in structures
server:
curl module:
work in progress
Diffstat (limited to 'server/modules/downloaders/curl/main.cpp')
-rw-r--r-- | server/modules/downloaders/curl/main.cpp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/server/modules/downloaders/curl/main.cpp b/server/modules/downloaders/curl/main.cpp index bd71104..fca69c5 100644 --- a/server/modules/downloaders/curl/main.cpp +++ b/server/modules/downloaders/curl/main.cpp @@ -22,6 +22,10 @@ #include "main.h" #include <boost/bind.hpp> +#include <curl/curl.h> + +#include "curl_download.h" + module_base::~module_base() @@ -31,6 +35,8 @@ module_base::~module_base() downloader::downloader() { + if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) + ;//TODO: handle error } downloader::~downloader() @@ -48,6 +54,15 @@ void downloader::load(core_api *a) info.name = "curl"; info.description = "basic http/ftp downloader via libcurl, also example how to write downloader modules"; info.version = "0.0.0.1draft"; + module_download_ui_element_info_s e; + e.id = "0"; + e.name = "Url"; + e.type = MODULE_UI_ELEMENT_TYPE_e::UI_STR; + info.download_creation_ui.push_back(e); + e.id = "1"; + e.name = "Download path"; + e.type = MODULE_UI_ELEMENT_TYPE_e::UI_STR; + info.download_creation_ui.push_back(e); info.on_modules_loaded = boost::bind(&downloader::on_modules_loaded, this); //optional definition of function which is called after all modules loaded } @@ -64,8 +79,28 @@ void downloader::set_module_settings(const std::map<std::string, std::string> &s int downloader::add_download(std::map<std::string, std::string> params) { + curl_download *d = new curl_download(params, api); + my_download md; + std::string download_name; + { + auto p1 = params["0"].rfind("/"); + if(p1 != std::string::npos) + md.name = params["0"].substr(p1); + } + md.curl_d = d; + int id = 0; + if(!downloads.empty()) + { + id = downloads.size(); + + md.id = id; + } + else + md.id = 0; + + downloads[id] = md; //TODO: - return 0; + return id; } bool downloader::stop_download(int download_id) |