| RoomModel CommunicationAndExecutionTypes { |
| |
| import room.basic.types.int16 |
| import room.basic.types.int32 |
| import room.basic.types.uint32 |
| |
| DataClass AnotherSimpleDataClass { |
| Attribute attribute1: int16 |
| Attribute attribute2: uint32 |
| } |
| |
| ProtocolClass EventdrivenProtocolClass1 [ "default is eventdriven" ] { |
| |
| // explicit: eventdriven ProtocolClass EventdrivenProtocolClass { |
| incoming { |
| Message msg1() ["message without data"] |
| Message msg2(int32) ["message with data"] |
| } |
| outgoing { |
| Message msg4() ["eventdriven ProtocolClass can have message into two directions"] |
| } |
| } |
| |
| datadriven ProtocolClass DatadrivenProtocolClass { |
| incoming { |
| Message signal1 (int32) ["a datadriven message needs data"] |
| } |
| // datadriven ProtocolClass can only have incoming messages (signals) |
| } |
| |
| eventdriven ActorClass EventdrivenActor ["default is eventdriven"] { |
| // only event-driven Ports and ActorRefs allowed |
| } |
| |
| datadriven ActorClass DatadrivenActor { |
| // only data-driven Ports and ActorRefs allowed |
| } |
| |
| async ActorClass MixedActor { |
| // both data/event-driven Ports and ActorRefs allowed |
| } |
| } |