forked from Ecdar/Ecdar-ProtoBuf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
query.proto
207 lines (169 loc) · 4.58 KB
/
query.proto
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
syntax = "proto3";
package EcdarProtoBuf;
option java_multiple_files = false;
option java_package = "EcdarProtoBuf";
option java_outer_classname = "QueryProtos";
import "component.proto";
import "objects.proto";
message UserTokenResponse {
int32 user_id = 1;
}
message QueryRequest {
int32 user_id = 1;
int32 query_id = 2;
string query = 3;
ComponentsInfo components_info = 4;
message Settings {
bool disable_clock_reduction = 1;
}
Settings settings = 6;
}
message StateAction {
State state = 1;
string action = 2;
}
enum NoInitialState {
NO_INITIAL_STATE = 0;
}
message ActionFailure {
enum Relation {
NOT_SUBSET = 0;
NOT_DISJOINT = 1;
}
message ActionSet {
string system = 1;
repeated string actions = 2;
bool is_input = 3;
}
Relation failure = 2;
repeated ActionSet action_sets = 3;
}
message QueryResponse {
int32 query_id = 1;
message ComponentResult { Component component = 1; }
message RefinementFailure {
string system = 1;
message RefinementStateFailure {
enum Unmatched {
DELAY = 0;
ACTION = 1;
}
Unmatched unmatched = 1;
StateAction state = 2;
}
oneof failure {
// The refinement failed for an action in a specific state
RefinementStateFailure refinement_state = 2;
// The refinement failed because this system was empty
string empty_system = 3;
// The refinement failed because the initial state was empty
NoInitialState no_initial_state = 4;
// The refinement failed because a child was inconsistent
ConsistencyFailure inconsistent_child = 5;
// The refinement failed because the actions mismatched
ActionFailure action_mismatch = 6;
}
}
message ConsistencyFailure {
string system = 1;
oneof failure {
// The consistency check failed because the initial state was empty
NoInitialState no_initial_state = 2;
// The consistency check failed because this state was not consistent
State failure_state = 3;
// The consistency check failed because the system is not deterministic
DeterminismFailure determinism = 4;
}
}
message SyntaxFailure {
string msg = 1;
string path = 2;
}
message DeterminismFailure {
string system = 1;
// The determinism check failed in this state for this action
StateAction failure_state = 2;
}
message ImplementationFailure {
string system = 1;
oneof failure {
// The determinism check failed in this state for this action
StateAction failure_state = 2;
// The implementation check failed because the system was not consistent
ConsistencyFailure consistency = 3;
}
}
message ModelFailure {
string system = 1;
oneof failure {
// The check failed because the actions mismatched
ActionFailure action_mismatch = 2;
// The check failed because a conjunction was not consistent
ConsistencyFailure inconsistent_conjunction = 3;
// Some other model failure
string other = 4;
}
}
message ReachabilityFailure {
enum Failure {
UNREACHABLE = 0;
}
Failure failure = 1;
}
message ReachabilityPath {
Path path = 4;
}
message Success {
}
message Error {
string error = 1;
}
message ParsingError {
string error = 1;
}
message ComponentsNotInCache {
}
oneof result {
Component component = 2;
ConsistencyFailure consistency = 3;
DeterminismFailure determinism = 4;
ImplementationFailure implementation = 5;
ReachabilityFailure reachability = 6;
RefinementFailure refinement = 7;
ReachabilityPath reachability_path = 8;
SyntaxFailure syntax = 9;
ParsingError parsing_error = 98;
ModelFailure model = 99;
Success success = 100;
Error error = 101;
ComponentsNotInCache componentsNotInCache = 102;
}
message Information {
enum Severity {
INFO = 0;
WARNING = 1;
}
Severity severity = 1;
string subject = 2;
string message = 3;
}
repeated Information info = 200;
}
message SimulationStartRequest {
SimulationInfo simulation_info = 1;
}
message SimulationStepRequest {
SimulationInfo simulation_info = 1;
Decision chosen_decision = 2;
}
message SimulationStepResponse {
// The full state that is reached after the simulation step
State full_state = 2;
// Possible decisions for subsets of the full state
repeated Decision new_decision_points = 1;
}
message SimulationInfo {
int32 user_id = 1;
string component_composition = 2; // example: A || B || A
ComponentsInfo components_info = 3;
}