diff options
Diffstat (limited to 'server/src/luaquerymapper.cc')
| -rw-r--r-- | server/src/luaquerymapper.cc | 18 | 
1 files changed, 15 insertions, 3 deletions
| diff --git a/server/src/luaquerymapper.cc b/server/src/luaquerymapper.cc index 67b780d..c99b48b 100644 --- a/server/src/luaquerymapper.cc +++ b/server/src/luaquerymapper.cc @@ -26,13 +26,18 @@   */  #include "luaquerymapper.h" +#include <sstream> +  static std::string loadresultstring(QueryResult &res, std::string group = "")  {    std::string s; +  std::stringstream timestamp; timestamp << res.timestamp;    std::map< std::string, std::string >::iterator v = res.values.begin();    while(v != res.values.end()) { -    s += group + (*v).first + " = \"" + (*v).second + "\"\n"; +    s += group + (*v).first + " = {}\n"; +    s += group + (*v).first + ".value = \"" + (*v).second + "\"\n"; +    s += group + (*v).first + ".timestamp = " + timestamp.str() + "\n";      v++;    } @@ -81,7 +86,7 @@ LUAQueryMapper::~LUAQueryMapper()    lua_close(L);  } -std::string LUAQueryMapper::map(const std::string &mapper) +Value LUAQueryMapper::map(const std::string &mapper)  {    int s = luaL_loadbuffer(L, mapper.c_str(), mapper.size(), "mapper");    switch(s) { @@ -100,7 +105,14 @@ std::string LUAQueryMapper::map(const std::string &mapper)    // Run the loaded code    lua_pcall(L, 0, LUA_MULTRET, 0); -  return lua_tostring(L, lua_gettop(L)); +  Value v; +   +  v.timestamp = lua_tointeger(L, lua_gettop(L)); +  lua_pop(L, 1); +  v.value = lua_tostring(L, lua_gettop(L)); +  lua_pop(L, 1); + +  return v;  }  #ifdef TEST_LUAQUERYMAPPER | 
