qlangserver: return weights as doubles instead of ints

This commit is contained in:
Ivan Skytte Jørgensen 2018-05-15 15:09:51 +02:00
parent 0e08a15346
commit 1455be5f97
3 changed files with 6 additions and 6 deletions

@ -42,7 +42,7 @@ static bool printSearchResultsTail(State0 *st);
static bool printSearchFiltersBar ( SafeBuf *sb , HttpRequest *hr ) ;
static bool printMenu ( SafeBuf *sb , int32_t menuNum , HttpRequest *hr ) ;
static void gotQueryLanguageWrapper(void *state, const std::vector<std::pair<lang_t, int>> &languages);
static void gotQueryLanguageWrapper(void *state, const std::vector<std::pair<lang_t, double>> &languages);
static bool gotQueryLanguage(void *state);
static void gotResultsWrapper ( void *state ) ;
@ -351,7 +351,7 @@ bool sendPageResults ( TcpSocket *s , HttpRequest *hr ) {
return gotQueryLanguage(st);
}
static void gotQueryLanguageWrapper(void *state, const std::vector<std::pair<lang_t, int>> &languages) {
static void gotQueryLanguageWrapper(void *state, const std::vector<std::pair<lang_t, double>> &languages) {
if (!languages.empty()) {
/// @todo ALC currently we only cater for one result (assume first result is the best)
State0 *st = (State0 *) state;

@ -104,7 +104,7 @@ void QueryLanguage::processResponse(fxclient_request_ptr_t base_request, char *r
std::shared_ptr<QueryLanguageRequest> request = std::dynamic_pointer_cast<QueryLanguageRequest>(base_request);
logTrace(g_conf.m_logTraceQueryLanguage, "Got result='%s' for query='%s'", response, request->m_query.c_str());
std::vector<std::pair<lang_t, int>> languages;
std::vector<std::pair<lang_t, double>> languages;
//parse the response
auto tokens = split(response, '|');
@ -121,7 +121,7 @@ void QueryLanguage::processResponse(fxclient_request_ptr_t base_request, char *r
continue;
}
languages.emplace_back(language, static_cast<int>(strtoul(pairs[1].c_str(), nullptr, 0)));
languages.emplace_back(language, static_cast<int>(strtod(pairs[1].c_str(), nullptr)));
}
// return default value if empty
@ -134,7 +134,7 @@ void QueryLanguage::processResponse(fxclient_request_ptr_t base_request, char *r
void QueryLanguage::errorCallback(fxclient_request_ptr_t base_request) {
std::shared_ptr<QueryLanguageRequest> request = std::dynamic_pointer_cast<QueryLanguageRequest>(base_request);
request->m_callback(request->m_context, std::vector<std::pair<lang_t, int>>());
request->m_callback(request->m_context, {});
}
bool QueryLanguage::initialize() {

@ -22,7 +22,7 @@
#include "FxClient.h"
#include "Lang.h"
typedef void (*query_language_callback_t)(void *context, const std::vector<std::pair<lang_t, int>> &languages);
typedef void (*query_language_callback_t)(void *context, const std::vector<std::pair<lang_t, double>> &languages);
class QueryLanguage : public FxClient {
public: