From 1fdf82ec8346c12d19c9a013080ca4c26a3cb6d6 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Tue, 25 Aug 2015 13:17:30 +0300 Subject: protocol: use int32 instead of strings for id's in structures server: curl module: work in progress --- server/modules/downloaders/curl/main.cpp | 37 +++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'server/modules/downloaders/curl/main.cpp') 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 +#include + +#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 &s int downloader::add_download(std::map 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) -- cgit v1.2.3