Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 962ecaacf48f3c12e593d133253cc77b64e79d1a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
RoomModel StatemachineInterfaceTestModel {

	import room.basic.types.* from "Types.room"

	ActorClass StatemachineInterfaceTest {
		Structure {
			ActorRef app1: AsyncApp
			ActorRef app2: DataApp
			ActorRef app3: EventApp
			ActorRef app4: EmptyAsyncApp
			ActorRef app5: EmptyDataApp
			ActorRef app6: EmptyEventApp
			
			// does not work
			//ActorRef app7: EmptyAsyncAppManual
			//ActorRef app8: EmptyDataAppManual
			//ActorRef app9: EmptyEventAppManual
		}
	}

	AnnotationType BehaviorManual { 
   		target = ActorBehavior 
 	} 

	ActorClass EmptyEventApp {
		Structure {
			Port p1 : EventProtocol
		}
		Behavior { }
	}

	ActorClass EventApp {
		Structure {
			Port p1 : EventProtocol
		}
		Behavior {
			StateMachine {
				Transition init: initial -> state0
				State state0
			}
		}
	}

	async ActorClass EmptyAsyncApp {
		Structure {
			Port p0 : DataProtocol
			Port p1 : EventProtocol
		}
		Behavior { }
	}

	async ActorClass AsyncApp { 
		Structure {
			Port p0 : DataProtocol
			Port p1 : EventProtocol
		}
		Behavior {
			StateMachine {
				Transition init: initial -> state0
				State state0
			}
		}
	}

	datadriven ActorClass EmptyDataApp {
		Structure {
			Port p0 : DataProtocol
		}
		Behavior { }
	}

	datadriven ActorClass DataApp {
		Structure {
			Port p0 : DataProtocol
		}
		Behavior {
			StateMachine {
				Transition init: initial -> state0
				State state0
			}
		}
	}
	
//	ActorClass EmptyEventAppManual {
//		Structure {
//			Port p1 : EventProtocol
//		}
//		Behavior {
//			@BehaviorManual
//		}
//	}

//	async ActorClass EmptyAsyncAppManual {
//		Structure {
//			Port p0 : DataProtocol
//			Port p1 : EventProtocol
//		}
//		Behavior {
//			@BehaviorManual
//		}
//	}

//	datadriven ActorClass EmptyDataAppManual {
//		Structure {
//			Port p0 : DataProtocol
//		}
//		Behavior { 
//			@BehaviorManual
//		}
//	}

	ProtocolClass EventProtocol {
		incoming {
			Message in1()
		}
	}

	datadriven ProtocolClass DataProtocol {
		incoming {
			Message in1(data: boolean)
		}
	}

}

Back to the top