event_consuming_2.xml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?xml version="1.0" ?>
  2. <diagram
  3. xmlns="msdl.uantwerpen.be/sccd"
  4. author="Simon Van Mierlo"
  5. name="TestEventConsuming2">
  6. <description>
  7. Testing event consuming.
  8. </description>
  9. <inport name="test_input" />
  10. <outport name="test_output" />
  11. <class name="Class1" default="true">
  12. <relationships>
  13. <association class="Class2" name="to_Class2" />
  14. </relationships>
  15. <scxml initial="initial">
  16. <state id="initial">
  17. <onentry>
  18. <raise event="create_instance" scope="cd">
  19. <parameter expr="'to_Class2'" />
  20. </raise>
  21. </onentry>
  22. <transition event="instance_created" target="../one">
  23. <parameter name="link_name" />
  24. <raise event="start_instance" scope="cd">
  25. <parameter expr="link_name" />
  26. </raise>
  27. </transition>
  28. </state>
  29. <state id="one">
  30. <onentry>
  31. <raise event="enter_one" port="test_output" />
  32. </onentry>
  33. <onexit>
  34. <raise event="exit_one" port="test_output" />
  35. </onexit>
  36. <transition event="A" target="../two" cond="0" />
  37. <transition event="B" target="../two" />
  38. </state>
  39. <state id="two">
  40. <onentry>
  41. <raise event="enter_two" port="test_output" />
  42. </onentry>
  43. <onexit>
  44. <raise event="exit_two" port="test_output" />
  45. </onexit>
  46. <transition event="A" target="../three" />
  47. </state>
  48. <state id="three">
  49. <onentry>
  50. <raise event="enter_three" port="test_output" />
  51. </onentry>
  52. <onexit>
  53. <raise event="exit_three" port="test_output" />
  54. </onexit>
  55. </state>
  56. </scxml>
  57. </class>
  58. <class name="Class2">
  59. <relationships>
  60. <association class="Class1" name="parent" />
  61. </relationships>
  62. <scxml initial="initial">
  63. <state id="initial">
  64. <transition target="../final">
  65. <raise event="A" target="'parent'" />
  66. <raise event="B" target="'parent'" />
  67. </transition>
  68. </state>
  69. <state id="final" />
  70. </scxml>
  71. </class>
  72. <test>
  73. <expected>
  74. <slot>
  75. <event name="enter_one" port="test_output"/>
  76. </slot>
  77. <slot>
  78. <event name="exit_one" port="test_output"/>
  79. <event name="enter_two" port="test_output"/>
  80. </slot>
  81. </expected>
  82. </test>
  83. </diagram>