summaryrefslogtreecommitdiffstats
path: root/apps/samples/put-that-there/put-that-there.scxml
diff options
context:
space:
mode:
Diffstat (limited to 'apps/samples/put-that-there/put-that-there.scxml')
-rw-r--r--apps/samples/put-that-there/put-that-there.scxml44
1 files changed, 43 insertions, 1 deletions
diff --git a/apps/samples/put-that-there/put-that-there.scxml b/apps/samples/put-that-there/put-that-there.scxml
index b608972..43a6b37 100644
--- a/apps/samples/put-that-there/put-that-there.scxml
+++ b/apps/samples/put-that-there/put-that-there.scxml
@@ -1,6 +1,7 @@
-<scxml datamodel="ecmascript" initial="start" binding="late"
+<scxml datamodel="ecmascript" initial="start" binding="late" name="ptt"
xmlns="http://www.w3.org/2005/07/scxml"
xmlns:scenegraph="http://uscxml.tk.informatik.tu-darmstadt.de/scenegraph.xsd">
+ <script src="http://uscxml.tk.informatik.tu-darmstadt.de/scripts/dump.js" />
<state id="start">
<invoke type="scenegraph">
<content>
@@ -25,5 +26,46 @@
</scenegraph:display>
</content>
</invoke>
+ <state id="main">
+ <transition event="http" target="main" type="internal"
+ cond="_event.data.pathComponent[1] === 'basichttp' &amp;&amp; _event.data.pathComponent[2] === 'query'" >
+ <!-- a request for /ptt/basichttp/query -->
+ <script>dump(_event);</script>
+ <if cond="_event.data.header['X-XPath']">
+ <script>
+ // a xpath query, evaluate, check for result and set reply on event
+ var nodes = document.evaluate(_event.data.header['X-XPath']);
+ if (nodes.asNodeSet().size &gt; 0) {
+ _event.reply = nodes.asNodeSet()[0];
+ } else {
+ _event.reply = "No nodes!";
+ }
+ </script>
+ </if>
+ <send type="basichttp" targetexpr="_event.data.header['X-Reply-To']">
+ <content expr="_event.reply" />
+ </send>
+ </transition>
+
+ <transition event="http" target="main" type="internal"
+ cond="_event.data.pathComponent[1] === 'query'" >
+ <!-- a request for /ptt/query -->
+ <script>dump(_event);</script>
+ <if cond="_event.data.header['X-XPath']">
+ <script>
+ // a xpath query, evaluate, check for result and set reply on event
+ var nodes = document.evaluate(_event.data.header['X-XPath']);
+ if (nodes.asNodeSet().size &gt; 0) {
+ _event.reply = nodes.asNodeSet()[0];
+ } else {
+ _event.reply = "No nodes!";
+ }
+ </script>
+ </if>
+ <respond to="_event.origin">
+ <content expr="_event.reply" />
+ </respond>
+ </transition>
+ </state>
</state>
</scxml> \ No newline at end of file