Make the FSM_STATE work better with optional loggins set by a define and standardize on using enum class by default.

This commit is contained in:
Zed A. Shaw 2024-09-16 06:53:49 -04:00
parent 8df6898d0b
commit 0aeb5b4ceb
8 changed files with 49 additions and 42 deletions

View file

@ -19,7 +19,7 @@ struct MatchResult {
string message = "";
};
enum BuildState {
enum class BuildState {
START, WAITING, BUILDING, DONE, FORKING, READING,
EXIT, ERROR
};
@ -60,16 +60,17 @@ class Builder : DeadSimpleFSM<BuildState, BuildEvent> {
}
switch(_state) {
FSM_STATE(BUILDING, building, ev);
FSM_STATE(START, start, ev);
FSM_STATE(WAITING, waiting, ev);
FSM_STATE(DONE, done, ev);
FSM_STATE(FORKING, forking, ev);
FSM_STATE(READING, reading, ev);
FSM_STATE(EXIT, exit, ev);
FSM_STATE(ERROR, exit, ev);
FSM_STATE(BuildState, BUILDING, building, ev);
FSM_STATE(BuildState, START, start, ev);
FSM_STATE(BuildState, WAITING, waiting, ev);
FSM_STATE(BuildState, DONE, done, ev);
FSM_STATE(BuildState, FORKING, forking, ev);
FSM_STATE(BuildState, READING, reading, ev);
FSM_STATE(BuildState, EXIT, exit, ev);
FSM_STATE(BuildState, ERROR, exit, ev);
}
} catch(...) {
fmt::println("ERROR: unhandled state: {}", int(_state));
error(ev);
}
}