| RoomModel PingPong_Model { | |
| LogicalSystem LogSys1 { | |
| SubSystemRef subSysRef1:SubSysClass1 | |
| } | |
| SubSystemClass SubSysClass1 { | |
| ActorRef actorRef1:PingPongTop | |
| LogicalThread defaultThread | |
| } | |
| ActorClass PingPongTop { | |
| Structure { | |
| ActorRef sender: Sender | |
| ActorRef receiver: Receiver | |
| Binding receiver.sender and sender.receiver | |
| } | |
| Behavior { } | |
| } | |
| ActorClass Sender { | |
| Interface { | |
| conjugated Port receiver: PPingPong | |
| } | |
| Structure { | |
| external Port receiver | |
| } | |
| Behavior { | |
| StateMachine { | |
| Transition init: initial -> SendingPing { } | |
| Transition tr0: SendingPing -> ReceivedPong { | |
| triggers { | |
| <pong: receiver> | |
| } | |
| } | |
| State SendingPing { | |
| entry { | |
| "receiver.ping();" | |
| } | |
| } | |
| State ReceivedPong | |
| } | |
| } | |
| } | |
| ActorClass Receiver { | |
| Interface { | |
| Port sender: PPingPong | |
| } | |
| Structure { | |
| external Port sender | |
| } | |
| Behavior { | |
| StateMachine { | |
| Transition init: initial -> WaingForPing { } | |
| Transition tr0: WaingForPing -> ReceivedPing { | |
| triggers { | |
| <ping: sender> | |
| } | |
| } | |
| State WaingForPing | |
| State ReceivedPing { | |
| entry { | |
| "sender.pong();" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| ProtocolClass PPingPong { | |
| incoming { | |
| Message ping() | |
| } | |
| outgoing { | |
| Message pong() | |
| } | |
| } | |
| } |