| RoomModel states_inheritance.t { |
| |
| PrimitiveType int32: ptInteger -> int32 (Integer) default "0" |
| |
| ProtocolClass PTimer { |
| incoming { |
| Message start (time_ms : int32) |
| Message kill () |
| } |
| outgoing { |
| Message timerTick () |
| } |
| } |
| |
| ProtocolClass PTimeout { |
| incoming { |
| Message start (time_ms : int32) |
| Message kill () |
| } |
| outgoing { |
| Message timeoutTick () |
| } |
| } |
| |
| ActorClass ATimingService { |
| Interface { |
| SPP timerSPP: PTimer |
| SPP timeoutSPP: PTimeout |
| } |
| Structure { |
| ServiceImplementation of timerSPP |
| ServiceImplementation of timeoutSPP |
| } |
| } |
| |
| ProtocolClass PTest1 { |
| incoming { |
| Message a () |
| Message b (x : int32) |
| Message c () |
| } |
| outgoing { |
| Message x () |
| } |
| } |
| |
| ProtocolClass PTest2 { |
| incoming { |
| Message x () |
| Message y () |
| Message z () |
| } |
| outgoing { |
| Message a () |
| } |
| } |
| |
| ProtocolClass PTest3 { |
| incoming { |
| Message a () |
| } |
| outgoing { |
| Message b () |
| } |
| } |
| |
| ActorClass ABase { |
| Interface { |
| Port fct : PTest1 |
| } |
| Structure { |
| external Port fct |
| Port subp : PTest2 |
| SAP timer: PTimer |
| SAP timeout: PTimeout |
| } |
| Behavior { |
| StateMachine { |
| State State1 {} |
| State State2 {} |
| State State3 { |
| subgraph { |
| State State1 {} |
| State State2 {} |
| State State3 {} |
| EntryPoint tp1 |
| TransitionPoint tp2 |
| ExitPoint tp3 |
| handler TransitionPoint tp5 |
| Transition tr0: initial -> State1 {} |
| Transition tr1: my tp1 -> State3 {} |
| Transition tr2: State1 -> State2 { |
| triggers { |
| <b:fct> |
| } |
| } |
| Transition tr3: State2 -> State3 { |
| triggers { |
| <c:fct> |
| } |
| } |
| Transition tr4: State3 -> State1 { |
| triggers { |
| <a:fct> |
| } |
| } |
| Transition tr5: my tp2 -> State3 { |
| triggers { |
| <b:fct> |
| } |
| } |
| Transition tr6: State3 -> my tp3 { |
| triggers { |
| <c:fct> |
| } |
| } |
| Transition tr7: my tp5 -> my tp5 { |
| triggers { |
| <timeoutTick:timeout> |
| } |
| } |
| } |
| } |
| State State4 {} |
| TransitionPoint tp0 |
| TransitionPoint tp1 |
| ChoicePoint CP1 |
| Transition tr0: initial -> State1 {} |
| Transition tr1: State1 -> State2 { |
| triggers { |
| <a:fct> |
| } |
| } |
| Transition tr2: State2 -> cp CP1 { |
| triggers { |
| <b:fct> |
| } |
| } |
| Transition tr3: cp CP1 -> State1 {} |
| Transition tr4: cp CP1 -> State3 { |
| cond { |
| "data==2" |
| } |
| } |
| Transition tr5: my tp0 -> tp1 of State3 { |
| triggers { |
| <a:fct> |
| } |
| } |
| Transition tr6: cp CP1 -> State4 { |
| cond { |
| "data==3" |
| } |
| } |
| Transition tr7: tp3 of State3 -> State2 {} |
| Transition tr8: State3 -> State2 { |
| triggers { |
| <c:fct> |
| } |
| } |
| Transition tr9: my tp1 -> State2 { |
| triggers { |
| <timerTick:timer> |
| } |
| } |
| } |
| } |
| } |
| |
| ActorClass TestActor extends ABase { |
| Interface { |
| Port port : PTest3 |
| } |
| Structure { |
| external Port port |
| } |
| Behavior { |
| StateMachine { |
| RefinedState State3 { |
| subgraph { |
| State State4 {} |
| EntryPoint tp6 |
| TransitionPoint tp7 |
| Transition tr8: my tp6 -> State2 {} |
| Transition tr9: my tp7 -> my tp7 { |
| triggers { |
| <z:subp> |
| } |
| } |
| Transition tr10a: State2 -> State4 { |
| triggers { |
| <y:subp> |
| } |
| } |
| Transition tr11a: State4 -> my tp3 { |
| triggers { |
| <z:subp> |
| } |
| } |
| } |
| } |
| RefinedState State4 { |
| subgraph { |
| State State1 {} |
| State State2 {} |
| Transition tr0: initial -> State1 {} |
| Transition tr1: State1 -> State2 { |
| triggers { |
| <a:port> |
| } |
| } |
| } |
| } |
| State State5 {} |
| Transition tr10: State1 -> State5 { |
| triggers { |
| <a:port> |
| } |
| } |
| Transition tr11: cp CP1 -> State5 { |
| cond { |
| "data==4" |
| } |
| } |
| Transition tr12: State5 -> tp6 of State3 { |
| triggers { |
| <a:port> |
| } |
| } |
| } |
| } |
| } |
| |
| } |