summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift/Lua')
-rw-r--r--Sluift/Lua/FunctionRegistry.cpp4
-rw-r--r--Sluift/Lua/Value.cpp4
2 files changed, 2 insertions, 6 deletions
diff --git a/Sluift/Lua/FunctionRegistry.cpp b/Sluift/Lua/FunctionRegistry.cpp
index ebbd087..46c6d18 100644
--- a/Sluift/Lua/FunctionRegistry.cpp
+++ b/Sluift/Lua/FunctionRegistry.cpp
@@ -1,59 +1,57 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Sluift/Lua/FunctionRegistry.h>
-#include <Swiften/Base/foreach.h>
-
#include <Sluift/Lua/Exception.h>
#include <Sluift/Lua/LuaUtils.h>
#include <Sluift/globals.h>
using namespace Swift::Lua;
FunctionRegistry::FunctionRegistry() {
}
FunctionRegistry::~FunctionRegistry() {
}
FunctionRegistry& FunctionRegistry::getInstance() {
static FunctionRegistry instance;
return instance;
}
void FunctionRegistry::addFunction(
const std::string& name, lua_CFunction function, const std::string& type,
const std::string& helpDescription, const std::string& helpParameters, const std::string& helpOptions) {
Registration registration;
registration.name = name;
registration.function = function;
registration.type = type;
registration.helpDescription = helpDescription;
registration.helpParameters = helpParameters;
registration.helpOptions = helpOptions;
registrations.push_back(registration);
}
void FunctionRegistry::createFunctionTable(lua_State* L, const std::string& type) {
lua_newtable(L);
addFunctionsToTable(L, type);
}
void FunctionRegistry::addFunctionsToTable(lua_State* L, const std::string& type) {
- foreach(const Registration& registration, registrations) {
+ for (const auto& registration : registrations) {
if (registration.type == type) {
lua_pushcclosure(L, registration.function, 0);
if (!registration.helpDescription.empty()) {
Lua::registerHelp(L, -1, registration.helpDescription, registration.helpParameters, registration.helpOptions);
}
else {
Lua::registerExtraHelp(L, -1, registration.type + "." + registration.name);
}
lua_setfield(L, -2, registration.name.c_str());
}
}
}
diff --git a/Sluift/Lua/Value.cpp b/Sluift/Lua/Value.cpp
index 70fbb89..96d954c 100644
--- a/Sluift/Lua/Value.cpp
+++ b/Sluift/Lua/Value.cpp
@@ -1,68 +1,66 @@
/*
* Copyright (c) 2011-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Sluift/Lua/Value.h>
#include <boost/numeric/conversion/cast.hpp>
#include <boost/variant/apply_visitor.hpp>
extern "C" {
#include <lualib.h>
}
-#include <Swiften/Base/foreach.h>
-
using namespace Swift;
using namespace Swift::Lua;
namespace {
struct PushVisitor : public boost::static_visitor<> {
PushVisitor(lua_State* state) : state(state) {
}
void operator()(const Nil&) const {
lua_pushnil(state);
}
void operator()(const bool& b) const {
lua_pushboolean(state, b);
}
void operator()(const int& i) const {
lua_pushnumber(state, i);
}
void operator()(const std::string& s) const {
lua_pushstring(state, s.c_str());
}
void operator()(const std::vector<Value>& values) const {
lua_createtable(state, boost::numeric_cast<int>(values.size()), 0);
for(size_t i = 0; i < values.size(); ++i) {
boost::apply_visitor(PushVisitor(state), values[i]);
lua_rawseti(state, -2, boost::numeric_cast<int>(i + 1));
}
}
void operator()(const std::map<std::string, std::shared_ptr<Value> >& table) const {
lua_createtable(state, 0, boost::numeric_cast<int>(table.size()));
- for(const auto& i : table) {
+ for (const auto& i : table) {
boost::apply_visitor(PushVisitor(state), *i.second);
lua_setfield(state, -2, i.first.c_str());
}
}
lua_State* state;
};
}
namespace Swift { namespace Lua {
void pushValue(lua_State* state, const Value& value) {
boost::apply_visitor(PushVisitor(state), value);
}
}}