summaryrefslogtreecommitdiffstats
path: root/test/uscxml/test-umundo-rpc.scxml
diff options
context:
space:
mode:
Diffstat (limited to 'test/uscxml/test-umundo-rpc.scxml')
-rw-r--r--test/uscxml/test-umundo-rpc.scxml60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/uscxml/test-umundo-rpc.scxml b/test/uscxml/test-umundo-rpc.scxml
new file mode 100644
index 0000000..f6e0f70
--- /dev/null
+++ b/test/uscxml/test-umundo-rpc.scxml
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<scxml datamodel="ecmascript">
+ <script>
+ function dump(thingy) {
+ if (typeof(thingy) == 'object') {
+ for (var key in thingy) {
+ print(key + ": ")
+ dump(thingy[key]);
+ }
+ } else {
+ print(thingy + "\n");
+ }
+ };
+ </script>
+ <state id="start">
+ <!-- Invoke umundo with a service query -->
+ <invoke type="umundo" id="umundo.eventSvc">
+ <param name="types" expr="'proto'"/>
+ <param name="service" expr="'EchoService'"/>
+ <finalize>
+ <log expr="'Calling finalize on returned event'"/>
+ </finalize>
+ </invoke>
+ <state id="idle">
+ <transition target="service.added" event="umundo.eventSvc.added"/>
+ <transition target="service.removed" event="umundo.eventSvc.removed"/>
+ <transition target="service.reply" event="umundo.eventSvc.reply.echo"/>
+ </state>
+ <state id="service.reply">
+ <onentry>
+ <log expr="'RPC Reply:'"/>
+ <script>dump(_event);</script>
+ </onentry>
+ <transition target="idle"/>
+ </state>
+
+ <state id="service.added">
+ <onentry>
+ <log expr="'Log Service found:'"/>
+ <script>dump(_event);</script>
+ <send target="#_umundo.eventSvc" event="echo">
+ <param name="type" expr="'EchoRequest'"/>
+ <content>
+ ({
+ "name": "This is foo!"
+ })
+ </content>
+ </send>
+ </onentry>
+ <transition target="idle"/>
+ </state>
+ <state id="service.removed">
+ <onentry>
+ <log expr="'Log Service lost:'"/>
+ <script>dump(_event);</script>
+ </onentry>
+ <transition target="idle"/>
+ </state>
+ </state>
+</scxml>