diff options
Diffstat (limited to 'server/src/server_session.cpp')
-rw-r--r-- | server/src/server_session.cpp | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp index 43d8837..113a756 100644 --- a/server/src/server_session.cpp +++ b/server/src/server_session.cpp @@ -27,6 +27,8 @@ #include "socket_wraper.h" #include "client.h" #include "modules_handler.h" +#include "event_subscription_event.h" +#include "event_subscription_repeated.h" extern std::map<std::string, client> clients; extern modules_handler *modules; @@ -280,7 +282,6 @@ bool server_session::handle_command(client_msg *msg) { server_msg m; m.set_type(SERVER_MSG_TYPE::SERVER_AUTH_REPLY); - //TODO: check for already existing auth token std::string server_password = runtime_config.config_file.get<std::string>("server.password", ""); if(server_password.empty()) m.mutable_auth_reply()->set_status(true); @@ -470,6 +471,7 @@ bool server_session::handle_command(client_msg *msg) d->set_module_name(msg->download_add_request().module_name()); d->set_downloaded(dl.downloaded); send_message(&m); + //TODO: fire event break; } } @@ -488,6 +490,10 @@ bool server_session::handle_command(client_msg *msg) { //TODO: handle error } + else + { + //TODO: fire event + } break; } } @@ -507,6 +513,10 @@ bool server_session::handle_command(client_msg *msg) { //TODO: handle error } + else + { + //TODO: fire event + } break; } } @@ -522,16 +532,44 @@ bool server_session::handle_command(client_msg *msg) if(m->get_module_info().name == downloads[i.download_id()].module_name) { auto dm = static_cast<module_downloader *>(m); - if(!dm->delete_download(i.download_id(), i.with_data())); + if(!dm->delete_download(i.download_id(), i.with_data())) { //TODO: handle error } + else + { + //TODO: fire event + } break; } } } } break; + case CLIENT_MSG_TYPE::CLIENT_SUBSCRIPTION_REQUEST: + { + for(auto i : msg->subscription_request()) + { + switch(i.mode()) + { + case SUBSCRIPTION_MODE::S_MODE_EVENT: + { + event_subscription_event *e = new event_subscription_event(&i); + client_->add_event_subscription(e); + } + break; + case SUBSCRIPTION_MODE::S_MODE_REPEATED: + { + event_subscription_repeated *e = new event_subscription_repeated(&i); + client_->add_event_subscription(e); + } + break; + default: + break; + } + } + } + break; default: return false; break; |