|
|
|
#include "Updater.h" |
|
|
|
namespace MosesServer |
|
{ |
|
using namespace Moses; |
|
using namespace std; |
|
|
|
Updater:: |
|
Updater() |
|
{ |
|
|
|
|
|
|
|
this->_signature = "S:S"; |
|
this->_help = "Updates stuff"; |
|
} |
|
|
|
void |
|
Updater:: |
|
execute(xmlrpc_c::paramList const& paramList, |
|
xmlrpc_c::value * const retvalP) |
|
{ |
|
#if PT_UG |
|
const params_t params = paramList.getStruct(0); |
|
breakOutParams(params); |
|
Mmsapt* pdsa = reinterpret_cast<Mmsapt*>(PhraseDictionary::GetColl()[0]); |
|
pdsa->add(m_src, m_trg, m_aln); |
|
XVERBOSE(1,"Done inserting\n"); |
|
*retvalP = xmlrpc_c::value_string("Phrase table updated"); |
|
#endif |
|
}; |
|
|
|
void |
|
Updater:: |
|
breakOutParams(const params_t& params) |
|
{ |
|
params_t::const_iterator si = params.find("source"); |
|
if(si == params.end()) |
|
throw xmlrpc_c::fault("Missing source sentence", |
|
xmlrpc_c::fault::CODE_PARSE); |
|
m_src = xmlrpc_c::value_string(si->second); |
|
XVERBOSE(1,"source = " << m_src << endl); |
|
si = params.find("target"); |
|
if(si == params.end()) |
|
throw xmlrpc_c::fault("Missing target sentence", |
|
xmlrpc_c::fault::CODE_PARSE); |
|
m_trg = xmlrpc_c::value_string(si->second); |
|
XVERBOSE(1,"target = " << m_trg << endl); |
|
if((si = params.find("alignment")) == params.end()) |
|
throw xmlrpc_c::fault("Missing alignment", xmlrpc_c::fault::CODE_PARSE); |
|
m_aln = xmlrpc_c::value_string(si->second); |
|
XVERBOSE(1,"alignment = " << m_aln << endl); |
|
m_bounded = ((si = params.find("bounded")) != params.end()); |
|
m_add2ORLM = ((si = params.find("updateORLM")) != params.end()); |
|
}; |
|
|
|
} |
|
|