123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?xml version="1.0" ?>
- <diagram
- xmlns="msdl.uantwerpen.be/sccd"
- author="Joeri Exelmans"
- name="take_one_queue">
- <description>
- Internal event lifeline - Queue-semantics: Internal events are treated just like external events: They are added to the object's event queue and will be sensed in another big step. This way, a raised internal event will always be sensed at some point later in time, but it is possible that other (external) events in the object's event queue are treated first.
- </description>
- <inport name="in"/>
- <outport name="out"/>
- <class name="c" default="true">
- <scxml initial="a" big_step_maximality="take_one" internal_event_lifeline="queue">
- <state id="a">
- <onentry>
- <raise event="entered_a" port="out"/>
- </onentry>
- <transition event="e" port="in" target="../b">
- <raise event="f"/>
- </transition>
- </state>
- <state id="b">
- <onentry>
- <raise event="entered_b" port="out"/>
- </onentry>
- <transition event="f" target="../c"/>
- </state>
- <state id="c">
- <onentry>
- <raise event="entered_c" port="out"/>
- </onentry>
- </state>
- </scxml>
- </class>
- <test>
- <input>
- <event name="e" port="in" time="0.0"/>
- </input>
- <expected>
- <slot>
- <!-- initialization -->
- <event name="entered_a" port="out"/>
- </slot>
- <slot>
- <!-- big step, input events = [e] -->
- <event name="entered_b" port="out"/>
- </slot>
- <slot>
- <!-- big step, input events = [f] -->
- <event name="entered_c" port="out"/>
- </slot>
- </expected>
- </test>
- </diagram>
|