00001
00002 #include "CloseSession.h"
00003 #include "TranslationRequest.h"
00004 #include "Server.h"
00005
00006 namespace MosesServer
00007 {
00008 CloseSession::
00009 CloseSession(Server& server)
00010 : m_server(server)
00011 { }
00012
00013 void
00014 CloseSession::
00015 execute(xmlrpc_c::paramList const& paramList,
00016 xmlrpc_c::value * const retvalP)
00017 {
00018 typedef std::map<std::string, xmlrpc_c::value> params_t;
00019 paramList.verifyEnd(1);
00020 params_t const& params = paramList.getStruct(0);
00021 params_t::const_iterator si = params.find("session-id");
00022 if (si != params.end())
00023 {
00024 uint64_t session_id = xmlrpc_c::value_int(si->second);
00025 m_server.delete_session(session_id);
00026 *retvalP = xmlrpc_c::value_string("Session closed");
00027 }
00028 }
00029
00030 }