Communicating session result to calling code #769
Labels
architectural decision
Discussion of design decision
generator
Related to generator package (SPARK code generation)
model
Related to model package (e.g., model verification)
specification
Related to specification package (e.g., specification parsing)
Projects
Context and Problem Statement
There is no lightweight way to differentiate a successful from a failed execution of a session state machine, as there is only one final state and no mechanism to communicate data to the "outside world" (except channels).
Considered Options
O1 Return value
Add a return statement (or a similar mechanism) which enables returning an arbitrary value (scalar value or message).
+ Very flexible
O2 Multiple final states identified by name
Multiple final states can be defined. When one of the final states is reached, the corresponding final state is reported as result (as an enum value).
+ Simple
− Conflicts with design decision in #700
O3 Multiple final states identified by previous state
The final state is identified by the
null
keyword (as decided in #700). The state in which the transition to the final state was taken is reported as result (as an enum value).+ Simple
Decision Outcome
TBD
The text was updated successfully, but these errors were encountered: