51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef L_SETTINGS_H_
-#define L_SETTINGS_H_
+#pragma once
#include "lua_api/l_base.h"
class Settings;
-class LuaSettings : public ModApiBase {
+class LuaSettings : public ModApiBase
+{
private:
static const char className[];
- static const luaL_reg methods[];
+ static const luaL_Reg methods[];
// garbage collector
- static int gc_object(lua_State* L);
+ static int gc_object(lua_State *L);
// get(self, key) -> value
- static int l_get(lua_State* L);
+ static int l_get(lua_State *L);
// get_bool(self, key) -> boolean
- static int l_get_bool(lua_State* L);
+ static int l_get_bool(lua_State *L);
// set(self, key, value)
- static int l_set(lua_State* L);
+ static int l_set(lua_State *L);
+
+ // set_bool(self, key, value)
+ static int l_set_bool(lua_State *L);
// remove(self, key) -> success
- static int l_remove(lua_State* L);
+ static int l_remove(lua_State *L);
// get_names(self) -> {key1, ...}
- static int l_get_names(lua_State* L);
+ static int l_get_names(lua_State *L);
// write(self) -> success
- static int l_write(lua_State* L);
+ static int l_write(lua_State *L);
// to_table(self) -> {[key1]=value1,...}
- static int l_to_table(lua_State* L);
+ static int l_to_table(lua_State *L);
- Settings* m_settings;
+ Settings *m_settings = nullptr;
std::string m_filename;
+ bool m_is_own_settings = false;
+ bool m_write_allowed = true;
public:
- LuaSettings(const char* filename);
+ LuaSettings(Settings *settings, const std::string &filename);
+ LuaSettings(const std::string &filename, bool write_allowed);
~LuaSettings();
- // LuaSettings(filename)
- // Creates an LuaSettings and leaves it on top of stack
- static int create_object(lua_State* L);
+ static void create(lua_State *L, Settings *settings, const std::string &filename);
- static LuaSettings* checkobject(lua_State* L, int narg);
+ // LuaSettings(filename)
+ // Creates a LuaSettings and leaves it on top of the stack
+ static int create_object(lua_State *L);
- static void Register(lua_State* L);
+ static LuaSettings *checkobject(lua_State *L, int narg);
+ static void Register(lua_State *L);
};
-
-#endif