sprint 1-alpha
sprint/script/lua_script.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 *   sprint::lua-c++ wrapper
00003 *
00004 *   Copyright (C) 2004-2011  Paolo Medici <www.pmx.it>
00005 *
00006 *  This library is free software; you can redistribute it and/or
00007 *  modify it under the terms of the GNU Lesser General Public
00008 *  License as published by the Free Software Foundation; either
00009 *  version 2.1 of the License, or (at your option) any later version.
00010 *
00011 *  This library is distributed in the hope that it will be useful,
00012 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 *  Lesser General Public License for more details.
00015 *
00016 *  You should have received a copy of the GNU Lesser General Public
00017 *  License along with this library; if not, write to the Free Software
00018 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019 *
00020 *******************************************************************************/
00021 
00022 #ifndef _LUA_SCRIPT_H
00023 #define _LUA_SCRIPT_H
00024 
00028 /* LUA C++ Interface **/
00029 extern "C" {
00030 #include "lua.h"
00031 }
00032 
00033 // fw
00034 struct luaL_Reg;
00035 
00036 namespace sprint {
00037           
00039 class lua_script {
00040         lua_State *L;
00041         public:
00042                 lua_script(int feature=0);
00043                 ~lua_script();
00044 
00046    lua_State * operator * (void) const { return L; }
00047    
00049    bool bind(const char *fun_name, lua_CFunction fun);
00051    bool bind(const char *lib_name, const luaL_Reg *);
00053    bool load(const char *filename);
00055    bool import(const char *script);   
00057    bool run();
00058    
00060    bool call(const char *fun_name);             
00062    bool call(const char *fun_name, lua_Number param1);
00064    bool call(const char *fun_name, lua_Number param1,lua_Number param2);
00065 };
00066 
00068 void my_luaL_register(lua_State *L, const luaL_Reg *);
00069 
00070 } // namespace
00071 
00072 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines