Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Communicating session result to calling code #769

Open
treiher opened this issue Sep 8, 2021 · 0 comments
Open

Communicating session result to calling code #769

treiher opened this issue Sep 8, 2021 · 0 comments
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)

Comments

@treiher
Copy link
Collaborator

treiher commented Sep 8, 2021

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

@treiher treiher added 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) architectural decision Discussion of design decision labels Sep 8, 2021
@treiher treiher added this to To do in RecordFlux 0.6 via automation Sep 8, 2021
@senier senier removed this from To do in RecordFlux 0.6 Oct 12, 2021
@senier senier added this to To do in RecordFlux 0.7 via automation Oct 12, 2021
@senier senier removed this from To do in RecordFlux 0.7 Aug 23, 2022
@senier senier added this to To do in RecordFlux Future via automation Aug 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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
No open projects
Development

No branches or pull requests

1 participant