prompt.xml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <class name="Prompt">
  2. <relationships>
  3. <association name="to_server" class="HTTPClient" min="1" max="1"/>
  4. </relationships>
  5. <constructor>
  6. <body>
  7. self.counter = 0
  8. </body>
  9. </constructor>
  10. <scxml initial="init">
  11. <state id="init">
  12. <onentry>
  13. <raise scope="cd" event="create_instance">
  14. <parameter expr="'to_server'"/>
  15. <parameter expr="'HTTPClient'"/>
  16. <parameter expr="'127.0.0.1'"/>
  17. <parameter expr="8080"/>
  18. </raise>
  19. </onentry>
  20. <transition event="instance_created" target="../initializing">
  21. <parameter name="instancename"/>
  22. <raise scope="cd" event="start_instance">
  23. <parameter expr="instancename"/>
  24. </raise>
  25. </transition>
  26. </state>
  27. <state id="initializing">
  28. <!-- This is only there because otherwise the thread might stop; this seems like a bug in the runtime though -->
  29. <transition after="1.0" target="."/>
  30. <transition event="http_client_ready" target="../send_request"/>
  31. </state>
  32. <state id="send_request">
  33. <transition after="1" target="../wait_reply">
  34. <raise event="HTTP_input" scope="narrow" target="'to_server'">
  35. <parameter expr="str(self.counter)"/>
  36. <parameter expr="'parent'"/>
  37. </raise>
  38. <script>
  39. print("Sending request: %s" % self.counter)
  40. self.counter += 1
  41. </script>
  42. </transition>
  43. </state>
  44. <state id="wait_reply">
  45. <!-- This is only there because otherwise the thread might stop; this seems like a bug in the runtime though -->
  46. <transition after="1.0" target="."/>
  47. <transition event="HTTP_output" target="../send_request">
  48. <parameter name="data"/>
  49. <script>
  50. print("Got response: %s" % data)
  51. </script>
  52. </transition>
  53. </state>
  54. </scxml>
  55. </class>