summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-04-30 17:48:25 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-04-30 17:48:25 (GMT)
commitaa635ecc06213bfb7f4f6c62cbb8e99832d99d48 (patch)
tree11e7a8c6a18ba979c00fa6a466a7296001b1dfb1
parent3d3f434c5be68a7e2b86ecccbaba40887852db99 (diff)
downloaduscxml-aa635ecc06213bfb7f4f6c62cbb8e99832d99d48.zip
uscxml-aa635ecc06213bfb7f4f6c62cbb8e99832d99d48.tar.gz
uscxml-aa635ecc06213bfb7f4f6c62cbb8e99832d99d48.tar.bz2
Started to offer state predicates for php
-rw-r--r--CMakeLists.txt4
-rw-r--r--src/bindings/swig/php/uscxml.i12
-rw-r--r--src/bindings/swig/php/uscxmlNativePHP.php20
-rw-r--r--test/samples/uscxml/test-prolog2.scxml18
4 files changed, 38 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bdd2f45..68b196a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -325,11 +325,11 @@ if (NOT WIN32)
include_directories(${LIBXML2_INCLUDE_DIR})
list (APPEND USCXML_CORE_LIBS ${LIBXML2_LIBRARIES})
set(XML_LIBRARIES ${LIBXML2_LIBRARIES})
- list (APPEND USCXML_CORE_LIBS "dl")
- list (APPEND USCXML_CORE_LIBS "pthread")
if (NOT APPLE)
list (APPEND USCXML_CORE_LIBS "rt")
endif()
+ list (APPEND USCXML_CORE_LIBS "dl")
+ list (APPEND USCXML_CORE_LIBS "pthread")
elseif(WIN32)
list (APPEND XML_LIBRARIES "Ws2_32")
list (APPEND XML_LIBRARIES "Winmm")
diff --git a/src/bindings/swig/php/uscxml.i b/src/bindings/swig/php/uscxml.i
index 5f0b930..5dd59b9 100644
--- a/src/bindings/swig/php/uscxml.i
+++ b/src/bindings/swig/php/uscxml.i
@@ -42,6 +42,18 @@ void*** tsrm_ls;
%ignore uscxml::InterpreterImpl;
//***********************************************
+// Beautify interpreter class
+//***********************************************
+
+%ignore uscxml::Interpreter::isAtomic(Arabica::DOM::Node<std::string>);
+%extend uscxml::Interpreter {
+ bool isAtomic(const std::string stateId) {
+ Arabica::DOM::Node<std::string> state = self->getState(stateId);
+ return self->isAtomic(state);
+ }
+}
+
+//***********************************************
// Parse the header file to generate wrappers
//***********************************************
diff --git a/src/bindings/swig/php/uscxmlNativePHP.php b/src/bindings/swig/php/uscxmlNativePHP.php
index e7ef93d..61e7c2e 100644
--- a/src/bindings/swig/php/uscxmlNativePHP.php
+++ b/src/bindings/swig/php/uscxmlNativePHP.php
@@ -274,8 +274,12 @@ class Event {
return $r;
}
- function setData($invokeId) {
- Event_setData($this->_cPtr,$invokeId);
+ function setData($data) {
+ Event_setData($this->_cPtr,$data);
+ }
+
+ function initContent($content) {
+ Event_initContent($this->_cPtr,$content);
}
static function fromXML($xmlString) {
@@ -747,10 +751,6 @@ class Interpreter {
return Interpreter_isTargetless($transition);
}
- static function isAtomic($state) {
- return Interpreter_isAtomic($state);
- }
-
static function isFinal($state) {
return Interpreter_isFinal($state);
}
@@ -832,6 +832,14 @@ class Interpreter {
static function getUUID() {
return Interpreter_getUUID();
}
+
+ function isAtomic($stateId=null) {
+ switch (func_num_args()) {
+ case 0: $r=Interpreter_isAtomic($this->_cPtr); break;
+ default: $r=Interpreter_isAtomic($this->_cPtr,$stateId);
+ }
+ return $r;
+ }
}
class InterpreterMonitor {
diff --git a/test/samples/uscxml/test-prolog2.scxml b/test/samples/uscxml/test-prolog2.scxml
index f697b89..50dd1b3 100644
--- a/test/samples/uscxml/test-prolog2.scxml
+++ b/test/samples/uscxml/test-prolog2.scxml
@@ -1,12 +1,14 @@
<scxml datamodel="prolog">
- <data id="father/2">
- bob, jim.
- bob, john.
- </data>
- <data>
- mother(martha, jim).
- mother(martha, john).
- </data>
+ <datamodel>
+ <data id="father/2">
+ bob, jim.
+ bob, john.
+ </data>
+ <data>
+ mother(martha, jim).
+ mother(martha, john).
+ </data>
+ </datamodel>
<state id="s1">
<onentry>
<foreach array="father(bob, X)"