diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-06-23 23:38:20 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-06-23 23:38:20 (GMT) |
commit | febde41c4c69d8f38967d5c195328d468834d037 (patch) | |
tree | 4580a433d410e91a6f8df9203c20693e7a21128d /src/bindings/swig/wrapped | |
parent | eb6e9807cdb43b408de45ae789916cdf3bebe6f0 (diff) | |
download | uscxml-febde41c4c69d8f38967d5c195328d468834d037.zip uscxml-febde41c4c69d8f38967d5c195328d468834d037.tar.gz uscxml-febde41c4c69d8f38967d5c195328d468834d037.tar.bz2 |
Updated tests for IRP and work on bindings
Diffstat (limited to 'src/bindings/swig/wrapped')
-rw-r--r-- | src/bindings/swig/wrapped/WrappedDataModel.cpp | 8 | ||||
-rw-r--r-- | src/bindings/swig/wrapped/WrappedDataModel.h | 138 | ||||
-rw-r--r-- | src/bindings/swig/wrapped/WrappedInvoker.cpp | 8 | ||||
-rw-r--r-- | src/bindings/swig/wrapped/WrappedInvoker.h | 39 |
4 files changed, 193 insertions, 0 deletions
diff --git a/src/bindings/swig/wrapped/WrappedDataModel.cpp b/src/bindings/swig/wrapped/WrappedDataModel.cpp new file mode 100644 index 0000000..901d246 --- /dev/null +++ b/src/bindings/swig/wrapped/WrappedDataModel.cpp @@ -0,0 +1,8 @@ +#include "WrappedDataModel.h" + +namespace uscxml { + +WrappedDataModel::WrappedDataModel() {} +WrappedDataModel::~WrappedDataModel() {} + +}
\ No newline at end of file diff --git a/src/bindings/swig/wrapped/WrappedDataModel.h b/src/bindings/swig/wrapped/WrappedDataModel.h new file mode 100644 index 0000000..285b40a --- /dev/null +++ b/src/bindings/swig/wrapped/WrappedDataModel.h @@ -0,0 +1,138 @@ +#ifndef WRAPPEDDATAMODEL_H_DBAAD6AF +#define WRAPPEDDATAMODEL_H_DBAAD6AF + +#include "../../../uscxml/Message.h" +#include "../../../uscxml/Factory.h" +#include "../../../uscxml/Interpreter.h" + +namespace uscxml { + +class WrappedDataModel : public DataModelImpl { +public: + WrappedDataModel(); + virtual ~WrappedDataModel(); + + virtual WrappedDataModel* create(const Interpreter& interpreter) { + return new WrappedDataModel(); + } + + virtual boost::shared_ptr<DataModelImpl> create(InterpreterImpl* interpreter) { + _interpreter = interpreter->shared_from_this(); + return boost::shared_ptr<DataModelImpl>(create(_interpreter)); + } + virtual std::list<std::string> getNames() { + return std::list<std::string>(); + }; + + virtual bool validate(const std::string& location, const std::string& schema) { + return true; + } + virtual void setEvent(const Event& event) {} + virtual Data getStringAsData(const std::string& content) { + Data data; + return data; + } + + // foreach + virtual uint32_t getLength(const std::string& expr) { + return 0; + } + 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 eval(const Arabica::DOM::Element<std::string>& scriptElem, + const std::string& expr) { + std::ostringstream ssEval; + ssEval << scriptElem; + eval(ssEval.str(), expr); + } + + virtual std::string evalAsString(const std::string& expr) { + return ""; + } + virtual bool evalAsBool(const std::string& expr) { + return evalAsBool("", expr); + } + + virtual bool evalAsBool(const Arabica::DOM::Node<std::string>& node, const std::string& expr) { + std::ostringstream ssNode; + ssNode << node; + return evalAsBool(ssNode.str(), expr); + } + + virtual bool isDeclared(const std::string& expr) { + return false; + } + + virtual void assign(const Arabica::DOM::Element<std::string>& assignElem, + const Arabica::DOM::Node<std::string>& node, + const std::string& content) { + // convert XML back into strings + std::string location; + if (assignElem.hasAttribute("location")) { + location = assignElem.getAttribute("location"); + } + + std::ostringstream ssAssign; + ssAssign << assignElem; + std::string tmp; + if (node) { + std::ostringstream ssContent; + ssContent << node; + tmp = ssContent.str(); + } else if (assignElem.hasAttribute("expr")) { + tmp = assignElem.getAttribute("expr"); + } else { + tmp = content; + } + assign(ssAssign.str(), location, tmp); + } + + virtual void assign(const std::string& location, const Data& data) { + init("", location, Data::toJSON(data)); + } + + virtual void init(const Arabica::DOM::Element<std::string>& dataElem, + const Arabica::DOM::Node<std::string>& node, + const std::string& content) { + // convert XML back into strings + std::string location; + if (dataElem.hasAttribute("id")) { + location = dataElem.getAttribute("id"); + } + std::ostringstream ssData; + if (dataElem) + ssData << dataElem; + std::string tmp; + if (node) { + std::ostringstream ssContent; + ssContent << node; + tmp = ssContent.str(); + } else if (dataElem.hasAttribute("expr")) { + tmp = dataElem.getAttribute("expr"); + } else { + tmp = content; + } + init(ssData.str(), location, tmp); + } + + virtual void init(const std::string& location, const Data& data) { + init("", location, Data::toJSON(data)); + } + + virtual bool evalAsBool(const std::string& elem, const std::string& content) { return false; } + virtual void init(const std::string& dataElem, const std::string& location, const std::string& content) {} + virtual void assign(const std::string& assignElem, const std::string& location, const std::string& content) {} + virtual void eval(const std::string& scriptElem, const std::string& expr) {} + +private: + Interpreter _interpreter; +}; + +} + +#endif /* end of include guard: WRAPPEDDATAMODEL_H_DBAAD6AF */ diff --git a/src/bindings/swig/wrapped/WrappedInvoker.cpp b/src/bindings/swig/wrapped/WrappedInvoker.cpp new file mode 100644 index 0000000..b775878 --- /dev/null +++ b/src/bindings/swig/wrapped/WrappedInvoker.cpp @@ -0,0 +1,8 @@ +#include "WrappedInvoker.h" + +namespace uscxml { + +WrappedInvoker::WrappedInvoker() {} +WrappedInvoker::~WrappedInvoker() {} + +}
\ No newline at end of file diff --git a/src/bindings/swig/wrapped/WrappedInvoker.h b/src/bindings/swig/wrapped/WrappedInvoker.h new file mode 100644 index 0000000..61eedac --- /dev/null +++ b/src/bindings/swig/wrapped/WrappedInvoker.h @@ -0,0 +1,39 @@ +#ifndef WRAPPEDINVOKER_H_F9725D47 +#define WRAPPEDINVOKER_H_F9725D47 + +#include "../../../uscxml/Message.h" +#include "../../../uscxml/Factory.h" +#include "../../../uscxml/Interpreter.h" + +namespace uscxml { + +class WrappedInvoker : public InvokerImpl { +public: + WrappedInvoker(); + virtual ~WrappedInvoker(); + + virtual std::list<std::string> getNames() { + return std::list<std::string>(); + }; + + virtual Data getDataModelVariables() { + Data data; + return data; + } + + virtual void send(const SendRequest& req) {} + virtual void invoke(const InvokeRequest& req) {} + + virtual WrappedInvoker* create(Interpreter interpreter) { + return new WrappedInvoker(); + } + + virtual boost::shared_ptr<InvokerImpl> create(InterpreterImpl* interpreter) { + return boost::shared_ptr<InvokerImpl>(create(interpreter->shared_from_this())); + } + +}; + +} + +#endif /* end of include guard: WRAPPEDINVOKER_H_F9725D47 */ |