12_take_many_queue.xml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?xml version="1.0" ?>
  2. <diagram
  3. xmlns="msdl.uantwerpen.be/sccd"
  4. author="Joeri Exelmans"
  5. name="take_many_queue">
  6. <description>
  7. Internal event lifeline - Queue-semantics: Internally raised events are treated like external events and are added to the object's event queue. They become present in another big step later on.
  8. </description>
  9. <inport name="in"/>
  10. <outport name="out"/>
  11. <class name="c" default="true">
  12. <scxml initial="a" big_step_maximality="take_many" internal_event_lifeline="queue">
  13. <state id="a">
  14. <onentry>
  15. <raise event="entered_a" port="out"/>
  16. </onentry>
  17. <transition event="e" port="in" target="../b">
  18. <raise event="f"/>
  19. </transition>
  20. </state>
  21. <state id="b">
  22. <onentry>
  23. <raise event="entered_b" port="out"/>
  24. </onentry>
  25. <transition event="f" target="../c"/>
  26. </state>
  27. <state id="c">
  28. <onentry>
  29. <raise event="entered_c" port="out"/>
  30. </onentry>
  31. </state>
  32. </scxml>
  33. </class>
  34. <test>
  35. <input>
  36. <event name="e" port="in" time="0.0"/>
  37. </input>
  38. <expected>
  39. <slot>
  40. <!-- initialization -->
  41. <event name="entered_a" port="out"/>
  42. </slot>
  43. <slot>
  44. <!-- big step, input events = [e] -->
  45. <event name="entered_b" port="out"/>
  46. </slot>
  47. <slot>
  48. <!-- big step, input events = [f] -->
  49. <event name="entered_c" port="out"/>
  50. </slot>
  51. </expected>
  52. </test>
  53. </diagram>