summaryrefslogtreecommitdiff
path: root/server/src/server_session.cpp
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2015-08-28 21:21:02 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2015-08-28 21:21:02 +0300
commit6f3f670abe3d2d78a13cd3862e3a587dd4fe4e85 (patch)
tree0d681fd23bf2e70e385d053aee1e54dbe08668b1 /server/src/server_session.cpp
parentba8247eaf522e8a129b7fbbf09a6fab010746e3a (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.cpp30
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);