summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift/ElementConvertors/CommandConvertor.cpp')
-rw-r--r--Sluift/ElementConvertors/CommandConvertor.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/Sluift/ElementConvertors/CommandConvertor.cpp b/Sluift/ElementConvertors/CommandConvertor.cpp
index 1e2f8e3..de7a439 100644
--- a/Sluift/ElementConvertors/CommandConvertor.cpp
+++ b/Sluift/ElementConvertors/CommandConvertor.cpp
@@ -1,46 +1,44 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Sluift/ElementConvertors/CommandConvertor.h>
#include <memory>
#include <boost/numeric/conversion/cast.hpp>
#include <lua.hpp>
-#include <Swiften/Base/foreach.h>
-
#include <Sluift/Lua/Check.h>
#include <Sluift/Lua/Value.h>
#include <Sluift/LuaElementConvertors.h>
using namespace Swift;
static Command::Action convertActionFromString(const std::string& action) {
if (action == "cancel") { return Command::Cancel; }
else if (action == "execute") { return Command::Execute; }
else if (action == "complete") { return Command::Complete; }
else if (action == "prev") { return Command::Prev; }
else if (action == "next") { return Command::Next; }
return Command::NoAction;
}
static std::string convertActionToString(Command::Action action) {
switch (action) {
case Command::Cancel: return "cancel";
case Command::Execute: return "execute";
case Command::Complete: return "complete";
case Command::Prev: return "prev";
case Command::Next: return "next";
case Command::NoAction: assert(false); return "";
}
assert(false);
return "";
}
CommandConvertor::CommandConvertor(LuaElementConvertors* convertors) :
GenericLuaElementConvertor<Command>("command"),
@@ -127,71 +125,71 @@ std::shared_ptr<Command> CommandConvertor::doConvertFromLua(lua_State* L) {
lua_pop(L, 1);
lua_getfield(L, -1, "form");
if (!lua_isnil(L, -1)) {
if (std::shared_ptr<Form> form = std::dynamic_pointer_cast<Form>(convertors->convertFromLuaUntyped(L, -1, "form"))) {
result->setForm(form);
}
}
lua_pop(L, 1);
return result;
}
void CommandConvertor::doConvertToLua(lua_State* L, std::shared_ptr<Command> payload) {
Lua::Table result;
if (!payload->getNode().empty()) {
result["node"] = Lua::valueRef(payload->getNode());
}
if (!payload->getSessionID().empty()) {
result["session_id"] = Lua::valueRef(payload->getSessionID());
}
switch (payload->getStatus()) {
case Command::Executing: result["status"] = Lua::valueRef("executing"); break;
case Command::Completed: result["status"] = Lua::valueRef("completed"); break;
case Command::Canceled: result["status"] = Lua::valueRef("canceled"); break;
case Command::NoStatus: break;
}
if (!payload->getNotes().empty()) {
std::vector<Lua::Value> notes;
- foreach (const Command::Note& note, payload->getNotes()) {
+ for (const auto& note : payload->getNotes()) {
Lua::Table noteTable;
if (!note.note.empty()) {
noteTable["note"] = Lua::valueRef(note.note);
}
switch (note.type) {
case Command::Note::Info: noteTable["type"] = Lua::valueRef("info"); break;
case Command::Note::Warn: noteTable["type"] = Lua::valueRef("warn"); break;
case Command::Note::Error: noteTable["type"] = Lua::valueRef("error"); break;
}
notes.push_back(noteTable);
}
result["notes"] = Lua::valueRef(notes);
}
if (payload->getAction() != Command::NoAction) {
result["action"] = Lua::valueRef(convertActionToString(payload->getAction()));
}
if (payload->getExecuteAction() != Command::NoAction) {
result["execute_action"] = Lua::valueRef(convertActionToString(payload->getAction()));
}
if (!payload->getAvailableActions().empty()) {
std::vector<Lua::Value> availableActions;
- foreach (const Command::Action& action, payload->getAvailableActions()) {
+ for (const auto& action : payload->getAvailableActions()) {
if (action != Command::NoAction) {
availableActions.push_back(convertActionToString(action));
}
}
result["available_actions"] = Lua::valueRef(availableActions);
}
Lua::pushValue(L, result);
if (payload->getForm()) {
bool result = convertors->convertToLuaUntyped(L, payload->getForm());
assert(result);
lua_setfield(L, -2, "form");
}
}