summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/lua/LuaDataModel.h
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-05-12 13:12:33 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-05-12 13:12:33 (GMT)
commitb62e7979600feee23dc7cdb61042a8fc7673122b (patch)
treef7351372f37979dd2d048e0b68a16a4cd3b2aadb /src/uscxml/plugins/datamodel/lua/LuaDataModel.h
parent1b11b310be61e51b3ac5ebb83f7c8a33aef3d6e8 (diff)
downloaduscxml-b62e7979600feee23dc7cdb61042a8fc7673122b.zip
uscxml-b62e7979600feee23dc7cdb61042a8fc7673122b.tar.gz
uscxml-b62e7979600feee23dc7cdb61042a8fc7673122b.tar.bz2
Major Refactoring v2.0
Diffstat (limited to 'src/uscxml/plugins/datamodel/lua/LuaDataModel.h')
-rw-r--r--src/uscxml/plugins/datamodel/lua/LuaDataModel.h47
1 files changed, 17 insertions, 30 deletions
diff --git a/src/uscxml/plugins/datamodel/lua/LuaDataModel.h b/src/uscxml/plugins/datamodel/lua/LuaDataModel.h
index eb23815..4e2fd43 100644
--- a/src/uscxml/plugins/datamodel/lua/LuaDataModel.h
+++ b/src/uscxml/plugins/datamodel/lua/LuaDataModel.h
@@ -20,20 +20,20 @@
#ifndef LUADATAMODEL_H_113E014C
#define LUADATAMODEL_H_113E014C
-#include "uscxml/InterpreterInfo.h"
#include "uscxml/plugins/DataModel.h"
#include <list>
-#ifdef BUILD_AS_PLUGINS
-#include "uscxml/plugins/Plugins.h"
-#endif
-
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
+#ifdef BUILD_AS_PLUGINS
+#include "uscxml/plugins/Plugins.h"
+#endif
+
+
namespace uscxml {
class Event;
class Data;
@@ -45,7 +45,9 @@ class LuaDataModel : public DataModelImpl {
public:
LuaDataModel();
virtual ~LuaDataModel();
- virtual boost::shared_ptr<DataModelImpl> create(InterpreterInfo* interpreter);
+ virtual std::shared_ptr<DataModelImpl> create(DataModelCallbacks* callbacks);
+
+ virtual void addExtension(DataModelExtension* ext);
virtual std::list<std::string> getNames() {
std::list<std::string> names;
@@ -53,46 +55,31 @@ public:
return names;
}
- virtual void initialize();
- virtual void setEvent(const Event& event);
-
- virtual bool validate(const std::string& location, const std::string& schema);
- virtual bool isLocation(const std::string& expr);
virtual bool isValidSyntax(const std::string& expr);
+ virtual void setEvent(const Event& event);
+
+ // foreach
virtual uint32_t getLength(const std::string& expr);
virtual void setForeach(const std::string& item,
const std::string& array,
const std::string& index,
uint32_t iteration);
- virtual void pushContext();
- virtual void popContext();
-
- virtual void assign(const Arabica::DOM::Element<std::string>& assignElem,
- const Arabica::DOM::Node<std::string>& node,
- const std::string& content);
- virtual void assign(const std::string& location, const Data& data);
-
- virtual void init(const Arabica::DOM::Element<std::string>& dataElem,
- const Arabica::DOM::Node<std::string>& node,
- const std::string& content);
- virtual void init(const std::string& location, const Data& data);
+ virtual bool evalAsBool(const std::string& expr);
+ virtual Data evalAsData(const std::string& expr);
+ virtual Data getAsData(const std::string& content);
- virtual Data getStringAsData(const std::string& content);
virtual bool isDeclared(const std::string& expr);
- virtual void eval(const Arabica::DOM::Element<std::string>& scriptElem,
- const std::string& expr);
- virtual std::string evalAsString(const std::string& expr);
- virtual bool evalAsBool(const Arabica::DOM::Element<std::string>& node, const std::string& expr);
+ virtual void assign(const std::string& location, const Data& data);
+ virtual void init(const std::string& location, const Data& data);
virtual std::string andExpressions(std::list<std::string>);
protected:
- virtual int luaEval(const Arabica::DOM::Element<std::string>& scriptElem,
- const std::string& expr);
+ static int luaInFunction(lua_State * l);
lua_State* _luaState;
};