diff options
Diffstat (limited to 'server/src/luaformatmapper.cc')
-rw-r--r-- | server/src/luaformatmapper.cc | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/server/src/luaformatmapper.cc b/server/src/luaformatmapper.cc deleted file mode 100644 index 652a34d..0000000 --- a/server/src/luaformatmapper.cc +++ /dev/null @@ -1,138 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * luaformatmapper.cc - * - * Wed Oct 29 16:02:03 CET 2008 - * Copyright 2008 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of Pracro. - * - * Pracro is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Pracro is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Pracro; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include "luaformatmapper.h" - -#include <sstream> - -#include "exception.h" - -#include "luaformatmapperutils.h" -/* -static std::string loadresultstring(Fields &fields) -{ - std::string s; - - Fields::iterator v = fields.begin(); - while(v != fields.end()) { - lua_pushstring(L, v->second); // Push the pointer to 'this' instance - lua_setglobal(L, v->first); // Assign it to a global lua var. - // s += (*v).first + " = \"" + (*v).second + "\"\n"; - v++; - } - - return s; -} -*/ -LUAFormatMapper::LUAFormatMapper(Fields &fields) -{ - L = luaL_newstate(); - if(L == NULL) { - error("Could not create LUA state."); - return; - } - - luaL_openlibs(L); - - setGlobal(L, "LUAFormatMapper", this); - preload_formatutils(L); - - Fields::iterator v = fields.begin(); - while(v != fields.end()) { - lua_pushstring(L, v->second.c_str()); // Push the pointer to 'this' instance - lua_setglobal(L, v->first.c_str()); // Assign it to a global lua var. - v++; - } - /* - std::string preload = loadresultstring(fields); - - if(luaL_loadbuffer(L, preload.c_str(), preload.size(), "preload")) { - error(lua_tostring(L, lua_gettop(L))); - return; - } - - // Run program (init) - if(lua_pcall(L, 0, LUA_MULTRET, 0)) { - error(lua_tostring(L, lua_gettop(L))); - return; - } - */ - clean_top = lua_gettop(L); -} - -LUAFormatMapper::~LUAFormatMapper() -{ - lua_close(L); -} - -std::string LUAFormatMapper::map(const std::string &mapper) -{ - output = ""; - - if(L == NULL) { - error("LUA state not initialized!"); - return output; - } - - if(mapper == "") { - error("Empty LUA mapper detected in " + mapper); - return output; - } - - // Load the mapper - if(luaL_loadbuffer(L, mapper.c_str(), mapper.size(), "mapper")) { - error(lua_tostring(L, lua_gettop(L)) + std::string(" in ") + mapper); - return output; - } - - // Run the loaded code - if(lua_pcall(L, 0, LUA_MULTRET, 0)) { - error(lua_tostring(L, lua_gettop(L)) + std::string(" in ") + mapper); - return output; - } - - // Check if app messed up the stack. - if(lua_gettop(L) != clean_top) { - error("Wrong number of return values in " + mapper); - lua_pop(L, lua_gettop(L) - clean_top); - return output; - } - - // output = lua_tostring(L, lua_gettop(L)); - // lua_pop(L, 1); - - return output; -} - -void LUAFormatMapper::error(std::string message) -{ - throw Exception("ERROR in LUAFormatMapper: " + message); -} - -void LUAFormatMapper::bufferoutput(std::string value) -{ - output += value; -} |