diff options
-rw-r--r-- | client-qt/udm-client-qt/client_session.cpp | 2 | ||||
-rw-r--r-- | client-qt/udm-client-qt/udm_main.cpp | 29 | ||||
-rw-r--r-- | protocol/events.proto | 1 | ||||
-rw-r--r-- | protocol/udm.proto | 2 | ||||
-rw-r--r-- | server/src/server_session.cpp | 7 |
5 files changed, 35 insertions, 6 deletions
diff --git a/client-qt/udm-client-qt/client_session.cpp b/client-qt/udm-client-qt/client_session.cpp index 6bad75c..25b545d 100644 --- a/client-qt/udm-client-qt/client_session.cpp +++ b/client-qt/udm-client-qt/client_session.cpp @@ -276,7 +276,7 @@ void client_session::handle_read(const boost::system::error_code& error, size_t // if(!parsed) else { - BOOST_LOG_TRIVIAL(error)<<"failed to parse client message"; + BOOST_LOG_TRIVIAL(error)<<"failed to parse server message"; delete this; //close connection return; } diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp index 084fa06..fcd07ff 100644 --- a/client-qt/udm-client-qt/udm_main.cpp +++ b/client-qt/udm-client-qt/udm_main.cpp @@ -35,6 +35,8 @@ #include <QToolBar> #include <QMenu> +#include <boost/log/trivial.hpp> + #include "connect_widget.h" #include "client_session.h" #include "downloads_model.h" @@ -323,7 +325,6 @@ void udm_main::server_message_received(server_msg msg) modules.clear(); //TODO: something better for(auto i : msg.server_modules_reply()) modules.push_back(i); - } break; case SERVER_MSG_TYPE::SERVER_DOWNLOADS_LIST_REPLY: @@ -347,7 +348,7 @@ void udm_main::server_message_received(server_msg msg) { if(i.id() == msg.download().download().id()) { - //TODO: merge download, not replace + //TODO: merge download, not replace ? i = msg.download().download(); found = true; break; @@ -359,7 +360,31 @@ void udm_main::server_message_received(server_msg msg) mdl_downloads->refresh(); } break; + case SERVER_MSG_TYPE::SERVER_DOWNLOAD_STATE_CHANGE: + { + for(auto i : msg.download_state_changes()) + { + switch(i.state()) + { + case SUBSCRIPTION_DOWNLOAD_STATE::SDS_STARTED: + //TODO: + break; + case SUBSCRIPTION_DOWNLOAD_STATE::SDS_STOPPED: + //TODO: + break; + case SUBSCRIPTION_DOWNLOAD_STATE::SDS_DELETED: + //TODO: + break; + default: + BOOST_LOG_TRIVIAL(debug)<<"error: unhandled download state in server message message\n"<<msg.DebugString(); + break; + } + } + + } + break; default: + BOOST_LOG_TRIVIAL(debug)<<"error: unhandled server message\n"<<msg.DebugString(); break; } } diff --git a/protocol/events.proto b/protocol/events.proto index 553ada5..8521e55 100644 --- a/protocol/events.proto +++ b/protocol/events.proto @@ -54,6 +54,7 @@ enum SUBSCRIPTION_MODE { enum SUBSCRIPTION_DOWNLOAD_STATE { SDS_STARTED = 0; SDS_STOPPED = 1; + SDS_DELETED = 2; } message subscription_download_state_change { diff --git a/protocol/udm.proto b/protocol/udm.proto index 78793fb..8b09867 100644 --- a/protocol/udm.proto +++ b/protocol/udm.proto @@ -23,8 +23,6 @@ import "ui.proto"; import "events.proto"; import "download.proto"; -//import "misc.proto"; -//import "settings.proto"; import "module.proto"; import "auth.proto"; import "core.proto"; diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp index b572980..2d4e1e4 100644 --- a/server/src/server_session.cpp +++ b/server/src/server_session.cpp @@ -535,6 +535,8 @@ bool server_session::handle_command(client_msg *msg) break; case CLIENT_MSG_TYPE::CLIENT_DOWNLOAD_DELETE: { + server_msg s_msg; + s_msg.set_type(SERVER_MSG_TYPE::SERVER_DOWNLOAD_STATE_CHANGE); for(auto i : msg->download_delete_request()) { for(auto m : modules->get_downloader_modules()) @@ -548,12 +550,15 @@ bool server_session::handle_command(client_msg *msg) } else { - //TODO: fire event + auto dsc = s_msg.add_download_state_changes(); + dsc->set_download_id(i.download_id()); + dsc->set_state(SUBSCRIPTION_DOWNLOAD_STATE::SDS_DELETED); } break; } } } + fire_event(SUBSCRIPTION_TYPE::ST_DOWNLOAD_STATE_CHANGE, s_msg); } break; case CLIENT_MSG_TYPE::CLIENT_SUBSCRIPTION_REQUEST: |