diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-08-28 21:21:02 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-08-28 21:21:02 +0300 |
commit | 6f3f670abe3d2d78a13cd3862e3a587dd4fe4e85 (patch) | |
tree | 0d681fd23bf2e70e385d053aee1e54dbe08668b1 /server/src/server_session.cpp | |
parent | ba8247eaf522e8a129b7fbbf09a6fab010746e3a (diff) |
protocol:
typo fix
added description to setting_info
server:
api:
using structure with setting info instead of hust string for just value (a bit of necessary complication)
renamed few structs to avoid collision with protobuf ones
defined few module variables in api itself (a bit of simplification for module developer)
modules:
adapted to api changes
Diffstat (limited to 'server/src/server_session.cpp')
-rw-r--r-- | server/src/server_session.cpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp index 64f2cfe..3affc5f 100644 --- a/server/src/server_session.cpp +++ b/server/src/server_session.cpp @@ -26,8 +26,10 @@ #include "utilities.h" #include "socket_wraper.h" #include "client.h" +#include "modules_handler.h" extern std::map<std::string, client> clients; +extern modules_handler *modules; @@ -183,8 +185,6 @@ void server_session::handle_command(client_msg *msg) } else client_ = i->second; - - //set auth token } send_message(&m); @@ -192,11 +192,35 @@ void server_session::handle_command(client_msg *msg) break; case CLIENT_MSG_TYPE::CLIENT_MODULES_REQUEST: { - //TODO: + server_msg msg; + msg.set_type(SERVER_MSG_TYPE::SERVER_MODULES_REPLY); + for(auto i : modules->get_downloader_modules()) + { + module_info *mi = msg.add_server_modules_reply(); + mi->set_name(i->get_module_info().name); + mi->set_description(i->get_module_info().description); + mi->set_version(i->get_module_info().version); + for(auto ms : i->get_runtime_module_settings()) + { + setting *msi = mi->add_settings(); + msi->set_name(ms.first); + msi->set_value(ms.second.value); + for(auto di : ms.second.info.dependencies) + msi->mutable_info()->add_dependencies(di); + for(auto bi : ms.second.info.blockers) + msi->mutable_info()->add_blockers(bi); + msi->mutable_info()->set_default_value(ms.second.info.default_value); + msi->mutable_info()->set_minimal_value(ms.second.info.minimal_value); + msi->mutable_info()->set_maximal_value(ms.second.info.maximal_value); + msi->mutable_info()->set_description(ms.second.info.description); + } + } + send_message(&msg); } break; case CLIENT_MSG_TYPE::CLIENT_CORE_INFO_REQUEST: { + //TODO: settings values here server_msg msg; msg.set_type(SERVER_MSG_TYPE::SERVER_CORE_INFO_REPLY); msg.mutable_server_core_info_reply()->set_version(1); |